はじめに
ここ最近巷でよく聞く「Python」は、手軽に書くことができるスクリプト言語として人気を博しています。機械学習、ディープラーニングがメジャーなキーワードとして広く使われるようになったために、それらのライブラリが豊富であるPythonが一気に市民権を得てきたと言えます。ライブラリの豊富さがPythonの最大の魅力です。用途に応じたライブラリを使えば、多くのコードを書かずとも機能を実現できるメリットがあります。また、オープンソースのライブラリも多くありますので、無料でも本格的なプログラムを構築することも可能です。
今回はこのPythonを環境構築から簡単なコードの実行、基本文法まで、一から学んでいきましょう。
レッスン1. Pythonを使うのに必要なものを揃える
まず、Pythonを実行するために必要な環境を整えていきます。
必要なもの:
- Python本体
- Visual Studio Code Pythonプラグイン
今回の演習ではエディタにVisua Studio Code(以下VS Code)を使います。VS Code本体のインストールは事前に済ませておいてください。
Python本体のインストール
まずは、Python本体をインストールします。
Python本体ダウンロードリンク
https://pythonlinks.python.jp/ja/index.html
*「非公式」と書いてありますが、Python Japanが本家サイトは分かりにくいということで作ったページになりますので、ご安心ください。
この記事作成時点での最新が3.9.0なので、そちらをダウンロードします。(最新でかまいません)
今回はWindows10 64bitで説明しますが、他のOSの方はお使いの物を選択ください。
ダウンロードが終わったら、インストーラを起動します。必ず「Add Python 3.9 to PATH」のチェックを入れてください。入れると、環境変数の登録を自動で行ってくれます。チェックしたら、「Install Now」を押してください。
インストール完了までしばらくお待ちください。
次の画面に進んだら、「Close」を押してください。
では、インストールが無事に成功しているかを確認してみます。コマンドプロンプトを開いて、「python –version」と入力し、Enterを押してください。下記のようにバージョンが表示されれば問題なく成功しています。
もし、表示されない場合は、インストールの最初の「Add Python 3.9 to PATH」のチェックを入れ忘れている可能性がありますので、PATHを手動で追加します。
VS Code拡張機能の追加
続いて、VS CodeにPythonの拡張機能を入れます。これを入れることにより、Pythonファイルの実行が可能となり、シンタックスハイライトが効くようになります。
拡張機能の追加メニューを開き、「python」と入力してください。一番上にMicrosoft公式のプラグインがあるので、そちらの「インストール」を押したら完了となります。
レッスン2. Pythonファイルを実行してみる
では、環境が揃ったので、実際に簡単なファイルを実行してみましょう。新規ファイルを作成し、Ctrl+Sで空ファイルのまま保存します。ファイルの種類をPythonとし、ファイル名は「test」とつけておきます。
保存ができたら、VS Codeの左下に「Select Python Interpreter」という項目があるので、そこをクリックします。これは、Pythonの本体を指定する操作になります。こちらは一度選択してしまえば、次からは新規作成をしてもデフォルトで選択されます。
画面上部にコマンドパレットが表示されますので、先ほどインストールしたバージョンを指定すれば、準備は完了です。
では、簡単なコードを実行してみましょう。
print("Hello world")
この1行だけを入れてみます。
コードが書けたら、早速ファイルを実行します。右クリックで、「ターミナルでPythonファイルを実行」を選びます。
VS Codeの画面下部にあるターミナルウィンドウに実行結果が表示されます。「Hello world」が表示されたら成功です。
このように、Pythonはたった1行で実行することも可能なほど、シンプルな文法となっております。
レッスン3.基本文法を学ぶ
では、ここからはPythonの基本文法を学んでいきましょう。良く使われるものを中心に取り上げております。
変数
まずは変数です。Pythonでは変数の宣言は必要ありません。最初に代入が発生した部分が宣言になります。では、コードを実行してみましょう。
コード:
a=1 print(a)
実行結果:
1
もちろん、文字列も格納できます。
コード:
a="Hello world" print(a)
実行結果:
Hello world
注意としては、型宣言しないので、直前に代入したものが有効になります。そのため、違う型を扱おうとするとエラーになります。
コード:
a="Hello world" a+=1 print(a)
実行結果:
Traceback (most recent call last): File "d:/test.py", line 2, ina+=1 TypeError: can only concatenate str (not "int") to str
型が違うというエラーが出ています。コードが大きくなると、型を忘れることがあるので、変数名を工夫するなどして対応する必要があります。
配列
続いて配列です。Pythonの配列はリスト、タプルがあります。
リストは一般的な配列と同じもので、好きな値を要素として格納ができます。一方タプルは要素の変更ができません。C言語で言うところのconst配列のようなものです。
まずは、リストを見てみましょう。リストの定義を行い、表示してみます。一般的な配列と同じで、要素番号を指定して取り出します。
コード:
#リストの定義 area = ["北海道", "東北", "関東", "中部", "近畿", "四国", "中国", "九州"] #[2]番目を取り出す print(area[2])
実行結果:
関東
また、要素の書き換えも、変数を書き換える時と同じようにできます。
コード:
#リストの定義 area = ["北海道", "東北", "関東", "中部", "近畿", "四国", "中国", "九州"] #[2]番目を書き換える area[2]="Tokyo" #[2]番目を取り出す print(area[2])
実行結果:
Tokyo
次にタプルを使ってみます。タプルは要素の書き換えができない配列です。タプルの指定は、定義の時に丸括弧で括ります。違いは定義だけで、使うときはリストと同じです。
コード:
#タプルの定義 area = ("北海道", "東北", "関東", "中部", "近畿", "四国", "中国", "九州") #[2]番目を取り出す print(area[2])
実行結果:
関東
要素を書き換えようとしてみます。
コード:
#タプルの定義 area = ("北海道", "東北", "関東", "中部", "近畿", "四国", "中国", "九州") #[2]番目を書き換える area[2]="Tokyo" #[2]番目を取り出す print(area[2])
実行結果:
Traceback (most recent call last): File "d:/test.py", line 5, inarea[2]="Tokyo" TypeError: 'tuple' object does not support item assignment
このように、書き換えをしようとするとエラーになります。場面に応じて上手に使い分けてみてください。
条件分岐
条件分岐はif,else文を使います。Pythonのif文には括弧がありません。代わりに、インデントでその範囲を表現します。
コード:
a=1 if a == 1 : print("1です") else : print("1以外です")
実行結果:
1です
追加条件にはeilfを使います。else ifではないのでご注意ください。
コード:
a=2 if a==1 : print("1です") elif a==2 : print("2です") else : print("それ以外です")
実行結果:
2です
このif文のように、Pythonではインデントが意味を持ちますので、忘れてしまいますと、エラーになったり思わぬ不具合を生んでしまったりすることがあります。ご注意ください。
繰り返し
繰り返しはいくつか種類がありますが、まずは単純な回数の繰り返しを見てみましょう。下記は5回ループする例です。今回はforの後ろにcounterという変数名を指定しておりますが、これがループカウンタの役割を果たします。counterは毎ループごとに1ずつ増えていきます。そしてrangeという組込み関数でループ回数を5回と指定します。また、if文の時のように、インデントでループ処理の範囲を指定することになります。
コード:
a=0 for counter in range(5): #5回繰り返し a+=1 print("counter:"+str(counter)) print("total:"+str(a))
実行結果:
counter:0 counter:1 counter:2 counter:3 counter:4 total:5
ちなみに、strと指定しているのは、文字列型へのキャストです。変数は数値なので、文字列型に変換した後で、文字列と結合します。
次に、配列の要素数分繰り返す方法があります。単純な回数指定のループよりも、こちらが良く使われると思います。配列の要素数を指定しなくても、配列名を指定するだけで配列の要素数分の繰り返しができます。ループのたびに、変数dayに順番に要素が入っていきます。
コード:
weekList = ["Sun", "Mon", "Tue", "Wen", "Thu", "Fri", "Sat"] for day in weekList: print(day)
実行結果:
Sun Mon Tue Wen Thu Fri Sat
ループを途中で終わりたい場合breakを指定します。また、for文にはelseも指定出来て、ループ終了時の処理を指定できます。elseは、breakで抜けた時には実行されません。同じfor文をbreakで抜けた場合と抜けない場合を見比べてみましょう。
コード:
weekList = ["Sun", "Mon", "Tue", "Wen", "Thu", "Fri", "Sat"] print("breakで抜ける") for day in weekList: print(day) if day == "Wen": break else: print("最後までループしました") print("breakで抜けない") for day in weekList: print(day) else: print("最後までループしました")
実行結果:
breakで抜ける Sun Mon Tue Wen breakで抜けない Sun Mon Tue Wen Thu Fri Sat 最後までループしました
breakで抜けない場合だけ、「最後までループしました」が出ていますね。通常、for文が終わった後に実行したい処理は、for文の外側に処理を書けばよいですが、breakの時は実行したくないという場合にはこのelseを用いることができます。
関数
では続いて、関数の作り方を学びます。関数は、defと付けて定義します。関数の処理範囲は、ループや条件分岐と同じで、インデントです。
コード:
#足し算関数 def sum(a, b): return a+b #引数同士を足して返す print( sum(2,3) )
実行結果:
5
引数を指定しない場合の、デフォルト引数を与えることもできます。
コード:
#足し算関数 def sum(a, b=6 ): #第2引数は指定されない場合6として扱う return a+b print( sum(2) ) #第2引数を省略
実行結果:
8
関数はファイルの上から順番に読み込まれるため、使う前に定義されている必要があります。Pythonにプロトタイプ宣言の概念は無いので、メイン処理の後に関数群を定義したい場合は、メイン関数を明示的に定義することで対応ができます。先ほどのコードで、メイン関数を追加したバージョンに変更してみましょう。実行結果は先ほどと同じになります。
コード:
#メイン関数を定義 def main(): print( sum(2) ) #第2引数を省略 #以降のメイン処理はここに書く #足し算関数 def sum(a, b=6 ): #第2引数は指定されない場合6として扱う return a+b #メイン関数の実行 main()
おわりに
これでPythonの基本的な文法の説明が一通り終わりました。非常にシンプルなコードで構成されることがお分かりになったかと思います。少ないコードで目的を果たせるので、初心者の方にも学びやすい言語となっています。今後も益々シェアを増やしていくことでしょう。最後までお読みいただき、ありがとうございました。
No Comments