スライドショー

Python

プログラミング言語「Python」基礎入門 | 初心者でも分かるように易しく解説

Python基礎知識
林檎ちゃん

プログラミングでAIとかを勉強したいなら「Python」って聞いたんだけど、「Python」ってどんな言語なの?

「Python」はデータ解析などに便利なライブラリがたくさんあるのが特徴ね

他の言語と違って文法もシンプルでこれからプログラミングを始める初心者の人でも入りやすい言語だと思うわ!

琴璃ちゃん

近年、AIの普及とともにプログラミング言語『Python』にも注目が集まっています。

Pythonは表計算用のライブラリなどデータ解析に便利なライブラリが豊富で、効率よくプログラミングすることができます。

ライブラリとは?

便利なプログラムを集めてひとまとめにしたものです。

また、Pythonは文法がシンプルで誰が書いても似たような構成になるように設計されています。

はじめに学ぶべき言語は「オブジェクト指向」を理解するのにも「Java」がいいと良く聞きますが、文法がシンプルで理解しやすいPythonから入る人も多いです。

オブジェクト指向とは?

ソフトウェア開発やプログラミングに用いられる「考え方」のことです。

Pythonにも「クラス」という概念が存在するオブジェクト指向プログラム言語ですので、「プログラミング」という世界を知るのにも不足は無いでしょう^^

こんな人に読んで欲しい!

  • これからPythonを勉強したい
  • Pythonについて基礎知識を身につけたい
  • 難しい専門用語を使わないで説明して欲しい
  • 学習方法が知りたい

Python(パイソン)とは

Pythonとは1991年にオランダ人の「Guido van Rossum(グイド・ヴァンロッサム)」という人が開発したプログラミング言語です。

「Python」は直訳すると「ニシキヘビ」で、Pythonのロゴは2匹のヘビがモチーフになっています。

名前の由来はヘビには関係なく、イギリスのBBC作の大ヒットコメディ番組『空飛ぶモンティ・パイソン』からきているそうです。

皆さんがよく知っている「Youtube」や「Instagram」も実はPythonで書かれています。
(より具体的に言うと、Pythonの「Djang(ジャンゴ)」と呼ばれるフレームワークを使用して作られています。)

フレームワークとは?

アプリケーションの枠組みのこと。
枠組みに沿って開発することで開発工程を大幅に短縮できます。

Pythonって需要はあるの?

林檎ちゃん

Pythonってあまり聞かないけど、そもそもって需要あるの?

PythonはAIの普及によって今最も注目されているプログラミング言語のひとつよ!

琴璃ちゃん

下記の図はGoogleの検索エンジンから検索された回数などをもとに、そのプログラミング言語がどれほど話題になっているかをランキングにして表した物です。

この表から分かるように、Pythonのシェア率は他言語と比べても高水準かつ、右肩上がりで伸び続けています。

AI(人工知能)に使われている深層学習やデータ解析、Webアプリ開発等にも使われており今後も市場拡大が予想されます。

これからプログラミングを学び始める方はPythonを学ぶ価値は十分にあるでしょう。

Pythonの特徴

Pythonの特徴として以下が挙げられます。

  • スクリプト言語
  • ライブラリが充実
  • 文法がシンプル

スクリプト言語

プログラム言語には「スクリプト言語」と「コンパイラ言語」があり、Pythonはスクリプト言語にあたります。

スクリプト言語とコンパイラ言語には以下のような特徴があります。

概要メリットデメリット主な言語
スクリプト言語実行時ソースコードを1行ずつ解析するコンパイルが不要でデバッグがしやすい実行速度が遅いPHP, Ruby, JavaScript, Python
コンパイラ言語コンパイルし機械語に変換してから実行する実行速度が早い実行前にコンパイルする必要があるJava, C#

コンパイルとは?

人間が書いたソースコードをコンピューターが理解できる「機械語(1と0のみで表現されたもの)」に変換する処理。

スクリプト言語は、コンパイラ言語と違いコンパイルする必要がなく、プログラムを書いたらすぐに実行できます。

デバッグする際も「ソースコートの修正 → 実行 → ソースコードの修正 → 実行」のサイクルを回しやすくなり、スクリプト言語の方が開発効率が良い傾向にあります。

しかし、スクリプト言語は実行時にソースコードの解析を行うため、コンパイラ言語に比べ実行速度が少々遅くなります

また、Pythonはスクリプト言語の中でも「インタプリタ言語」と呼ばれており、下記のようにプログラムを1行ずつ書いて実行することが可能です。

ライブラリ が充実している

Pythonはライブラリが豊富であり、データ解析や機械学習に便利なライブラリが標準で備わっていることから、主に「データサイエンス」や「人工知能(AI)」に用いられます。

標準ライブラリには下記のような種類があります。

  • インターネット関連
  • データ永続化
  • GUI関連
  • データ圧縮
  • ファイル操作
  • 数学関連

Pythonには数多くの標準ライブラリが用意されており、いちから複雑なコードを書くことなくプログラミングすることができます

興味があれば公式ページで標準ライブラリ一覧を見てみてください。

文法がシンプル

Pythonは構文がシンプルでプログラミング初心者でも学習しやすい言語です。

例えば、『100までの素数を出力するプログラム』をJavaで書くと以下のようになります。

int i, j;

for( i = 1 ; i <= 100; i++){
    if( i != 1){
        for( j = 2 ; j <= i; j++){
            if( i == j ){
                System.out.println(i);
            }
            else if( i % j == 0){
                break;
            }
        }
    }
}

これをPythonで書くと以下のようになります。

for i in range(1, 100):
    if i != 1:
        for j in range(2, i+1):
            if i == j:
                print(i)
            elif i % j == 0:
                break

Pythonは「カッコ{}」の代わり「インデント」にて処理のブロックを区別するため構文がシンプルで、自然と見やすいプログラムが書くことができます。

もっと少ない行数でも書くことが可能ですが、可読性が低くなってしまうためあまり実用的ではありません。
(たまに『Javaだと数十行のプログラムがPythonだと2行で書けちゃいます!』と解説されて人もおりますが...)

試しに例として、短いコードで書いてみたものをお見せしましょう。

例えば、下記は1〜5の数字をそれぞれ2乗した数値を表示するプログラムです。

source = [1,2,3,4,5]
newData = []
for d in source:
    newData.append(d * d)
print(newData)

これを少ない行数で書こうとすると次のように書くと下記のようになります。

data = [1,2,3,4,5]
newData = [d * d for d in data]
print(newData)

確かに行数には削減できましたが、何をしているコードなのかパッと見分かりづらくなってしまいましたね...

もし、「いや、私は短いコードで書きたい!」という人は、後から自分、もしくは他人が見たときに何をしているのかが一目でわかるように以下のようにコメントをつけておくと良いでしょう。

data = [1,2,3,4,5]
newData = [d * d for d in data] #dataの中の数値をそれぞれ2乗した値をnewDataへ格納する
print(newData)

Pythonをおすすめする人

プログラミング言語にはそれぞれ得意な分野があります。

PHPやRubyなら「Web開発」、C言語ならロボット制御などが向いているなどです。

先にも述べたように、Pythonはデータ解析やWeb開発のためのライブラリが豊富なことから深層学習やWeb開発使われており、データ解析やWebアプリを開発するのが得意な言語です。

真相学習(ディープラーニング)とは?

大量なデータから自動的に特徴を見つける技術のことです。
人間の脳のニューロン(神経細胞)を模倣することで実現しています。

上記のことを踏まえ、Pythonを学習するのをおすすめするのは以下のような人です。

  • 機械学習(深層学習)をやりたい人
  • データサイエンスをやりたい人
  • GUIアプリ、ツールを作りたい人
  • 特に作りたい物がない人

深層学習をやりたい人はもちろんですが、PythonはGUIアプリ、Webアプリ開発と作れるものの幅が広いため、「やりたいことは特に決まってない」という方もプログラミングの入り口としてPythonから参入するのも良いでしょう。

Pythonをおすすめできない人

できることが非常に多いPythonですが、下記のような人にはあまりオススメしません。

  • スマートフォン向けアプリを作りたい人
  • Webサービス・アプリを作りたい人
  • 組込システムを開発したい人

Pythonはスマートフォン向けアプリの開発には不向きな言語です。
というのも、Pythonにはスマホアプリを開発するための整った環境がありません。

スマホアプリの開発がやりたい人はAndroidならJavaやKotlin、iPhoneならSwiftを学習すると良いでしょう。

Pythonでスマホアプリを作ってみたい人へ

スマホ上でPythonコードを実行できるアプリを使ってみると良いでしょう。

iPhoneには『Pythonista3』、Androidには『Pydroid3』というアプリがありますのでこれらがオススメです。

Pythonista3は有料(1200円程)ですが、有料なだけに高機能なため購入する価値はあると思います。

Webサービスを作りたい人は、先ほど登場した「Django」意外にも「Flask」「bottle」といったWeb開発用のフレームワークがいくつも用意されていますので、PythonだからWeb開発には不向きといったことはないです。

ただし、Web開発となるとやはりPHPの「Laravel」Rubyの「Rails」ようにWeb開発に特化した言語、フレームワークがありますので、「私はWeb開発がしたい!」と強い気持ちのある方はPHP、Rubyを学習することをオススメします。

開発環境構築

Pythonについて色々説明してきたけど『百聞は一見に如かず』ということで、実際に自身のパソコンにPythonを動かせる環境と作ってみましょう。

Pythonにはバージョン「2系」と「3系」がありますが、3系が主流になってきましたので今回は3系のインストール方法を紹介しようと思います。

Macの場合

Macを使用されている方は以下の記事を参考に環境を作ってみてください。

Windowsの場合

Windowsを使用されている方は以下の記事を参考に環境を作ってみてください。

Pythonを学習できるWebサービス

Pythonを学習できるWebサービスには色々ありますが、私がオススメするのは下記のサービスです。

独学型

ドットインストール

ドットインストールは動画をみて学ぶタイプの代表的なサービスです。

1回3分程と1回あたりの所用時間が短いため、隙間時間などを活用して学習することができます。

一部無料で公開されているレッスンがあるので是非見てみてください。

ドットインストール演習画面

Progate

忍者衣装のワンちゃんがかわいいProgateは、実際にプログラムを書きながら学んでいくことができます。

学習する環境としてブラウザのみ準備すれば良いため、コーディングまでのハードルが低く初めて学ぶ言語などの入り口として利用するのがオススメです。

Progate演習画面

Paizaラーニング

Paizaは転職サイトで有名ですが、Paizaラーニングという学習サービスも提供しています。

Paizaラーニングは「ドットインストール」と「Progate」を合わせたようなイメージです。

解説動画を見て、実際にコードを書きながら学ぶことができます。

paizaラーニング演習画面

受講型

Tech Academy

TechAcademyは有名なプログラミングスクールの一つで、ビデオチャットにてプロの講師からマンツーマンで学ぶことができます。

学びたいコースを選択し時間を指定して、自宅での受講が可能なため学校・仕事終わりなど自身の都合に合わせて学習できるのが特徴です。

「チャットサポート」があり、随時質問できたりと学習効率がよく短期間でスキルを習得したい方にオススメです。

TechAcademyでは無料体験( TechAcademy 無料体験 )を実施しているため興味のある方は一度試してみるとよいでしょう。

Aidemy

AidemyはPythonに特化したAI(人工知能)を学ぶことができるプログラミングスクールです。

「AIアプリ開発コース」「データ分析コース」「自然言語処理コース」「LINEチャットボット開発コース」があり、受講期間内であれば他のコースも学ぶことができます。

Aidemyでは無料でオンライン相談が受けられるので、興味のある方は覗いてはいかがでしょうか。

Python案件単価

近年需要が高まってきたPythonですが、実際の仕事の単価がどれほどなのかみてみましょう。

下記はフリーランスが様々な案件と受注するためのサービスから、Pythonの開発案件の一部をピックアップしたものです。

Pythonの開発案件では約70〜80万円/月の収益が見込めます。

PythonはJavaなどメジャーなプログラミング言語と違い、まだまだ案件数的には少ないですが、その分スキルを持った人もまだ少ないため、単価が高い案件が多いです。

今から技術を習得しておき、上記のような高単価な案件を獲得するのも良いかも知れません。

まとめ

Pythonはこれからを担うAI(人工知能)やデータ解析に使われるため、今後さらに需要が伸びていくプログラミング言語です。

Pythonを学習する人はぜひ、根気強く学んでみてください!!

-Python

© 2021 yoshicont.