はじめに
Pythonの文法について基本的な部分を「1日でマスター」と題して一気に書いていきます。
Pythonを実行するにあたり、anacondaを公式サイトからダウンロードしてインストールします。プログラムの実行は、anaconda Powershell Promptを使います。
プログラム実行環境ができたらpythonの文法に入ります。
Pythonのプログラム構成
pythonはインタプリタ言語です。インタプリタとは、記述されたプログラムを上から1行ずつ逐次実行していく実行形態です。
>>>def add(x,y)
ans = x + y
return ans
>>>print(add(1,2))
3
pythonプログラムをファイルにする場合は、拡張子を「.py」とします。
ファイルは宣言部と関数部からなります。宣言部には、使用するモジュールのライブラリファイルをインポートする記述、外部変数(グローバル変数)の宣言を記述します。
関数部には、実行するプログラム、自作の関数群を記載します。
プログラムの実行は、python Powershell Promptを起動し、cdコマンドを使ってpythonプログラムが保存されているディレクトリにカレントディレクトリを移動させます。ここでは、C:¥prog¥pyにtest.pyプログラムが保存されています。その状態でpython (pythonファイル)を実行します。
(base) PS C:\prog\py> python test.py
これによりtest.pyに記述されているpythonプログラムが実行されることになります。
pythonのコメント
コメント文はプログラムの説明を記述するもので、プログラムとして実行されません。
何をするプログラムなのか、関数の機能説明、変数の格納しているものの意味合いなどプログラムを後から読み返す際にプログラムを解読しなくてもある程度内容が分かるようにしておくために大切な記述となります。
pythonのコメント文は先頭に「#」を付けて表します。
#和の計算プログラム
B=1 #変数Bに値代入
C=2 #変数Cに値代入
A=B+C #和の計算
print(A) #出力
「#」以降に記述されている文はすべてコメントとなります。
データ表現-変数-
変数とは、データを保管する箱のようなものです。変数にデータを保管することによりメモリにデータが書き込まれます。
pythonでは、変数を定義する際には、その変数名を記述するだけで変数を使えるようになります。C言語等では、変数の型を明記しますが、pythonでは、使い方によって型が自動的に割り振られます。
変数名には次のようなルールがあります。
▶英字(アンダースコア「_」含む)、又は、数字で作る
▶先頭文字は、英字のみ可能である
▶大文字と小文字は異なるのもとして扱う
▶予約語を変数名に使用できない
int,float,if,elif,else,for,while,break,continue,and,or,not,in,with,as,is,from,import,pass,raise,assert,def,del,insert,yield,return,async,await,True,False,lambda,try,finally,None,class,nonlocal,global,except
pythonの場合、変数の型は特別意識しなくてもプログラムは記述できますが、変数の型には次のようなものがあります。変数に値が代入されることにより自動的に型が割り振られます。
型名 | 説明 |
int | 整数値。サイズはメモリ最大値まで許容される。(python3以降) |
bool | 整数値のサブセット。True(1)/False(0)の二値を扱う。 |
float | 浮動小数点数を表す。 sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) |
complex | 複素数を表す。 |
string | 文字列を表す。 |
pythonでの変数の書き方は次のようになります。
#変数名=値で値に応じた型の変数がつくられる
a = 123 #整数値
b = "str" #文字列 ダブルクォーテーションかシングルクォーテーションで括る
c = 1.23 #浮動小数点数
d = 0x0f #整数値16進数表現(10進数で15)
e = 0o10 #整数値8進数表現(10進数で8)
特殊な文字は「¥」と「文字」で表現します。
\n 改行 \0 null文字(10進数で0)
\\ \文字 \’ シングルクォーテーション
\” ダブルクォーテーション
データ表現-リスト-
リストは、複数の値をひと続きに保持して管理するオブジェクトです。
リスト内は、異なる型でも定義できます。
リストは、リスト名 = [値1,値2,値3,…]というように大括弧の形で記述します。
list = [1,2,3] #整数型で3つの要素(1,2,3)を持つリスト
list[0] #要素0の1を表す
list[1] #要素1の2を表す
list[2] #要素2の3を表す
list[-2] #要素1の2を表す(マイナスは後ろからの要素を表す)
list[1:2] #要素1の2を表す(開始インデックスから終了インデックスの手前まで)
#終了インデックスは含まないことに注意
del list[0] #要素0の1を削除
リストには、要素を挿入したり並べ替えたり(ソート)要素値を削除したりする機能があります。
このような処理機能をメソッドと呼びます。以下にリストのメソッドを挙げます。
メソッドは、「list.(メソッド名)」の形で記述します。
list.append(5) #リストの最後の要素に5を追加する
list.insert(3,4) #要素3に4を追加する
list.sort(reverse=True) #要素の値を降順にソートする(reverse記述なしで昇順となる)
list.remove(2) #要素値2を削除する
データ表現-タプル-
タプルとはリストのように複数の値をひと続きに保持して管理するものです。
リストとの違いは、要素を追加したり削除したりすることができないという点です。
プログラムの途中で値を変更しないデータの管理に適しています。
タプルは、「タプル名 =(値1,値2,値3,…)」のように値を小括弧で括る形で記述します。
tap = ("あか","みどり","あお")
データ表現-辞書-
辞書とは、タプルの要素番号をキーで指定するものです。連想配列とも呼ばれます。
キーと値をセットにして管理するオブジェクトです。
辞書は、「辞書名={キー1:値1,キー2:値2,キー3:値3,…}」のようにキーと値を中括弧で括る形で記述します。
dic = {“あか”:10,”みどり”:20,”あお”:30} #辞書の定義
dic[“あか”] #10が読み出される
関数
関数とはプログラムをひとまとまりにして書いたものです。
pythonでは、次のように関数を記述します。
インデントは、タブキーによる文字下げです。
インデントの行が定義した関数の処理内容となります。
引数とは、関数に与える値で処理に使うことができます。
戻り値は、関数内での処理結果を関数の呼び出し元に返す値です。
関数の例として、x+yの結果を返す関数を記述してみます。
def add(x,y):
return x+y
add(1,2) #結果として3が返る
関数を作ることによってプログラムが見やすくなり、可読性のよいプログラムとなります。
また、処理を関数にすることで関数内の処理がブラックボックスになり、処理の詳細を知らなくても入力と出力を知って入れば処理を実行できることになります。
さらには、処理を関数にすることで同じ処理を何度も記述することなく同じ関数を呼び出すだけでよくなります。これは、書き間違いの防止や処理の修正時の変更箇所を減らす効果があります。
このような点から関数を作る意味というものが見えてくるかと思います。
pythonには、あらかじめ作成された関数が用意されています。この関数を組み込み関数といいます。
組み込み関数の代表的なものは次のようなものがあります。
abs(),ascii(),bin(),bool(),bytearray(),bates(),eval(),filter(),float()
hash(),hex(),input(),int(),len(),max(),min(),next(),oct(),open()
pow(),print(),str(),sum()
組み込み関数の処理の詳細は、公式ドキュメントを参照してみてください。
変数のスコープ
変数には、グローバル変数とローカル変数があります。
この2つの変数はスコープの違いによるものです。スコープとは変数が有効なものとして使える範囲のことをいいます。
グローバル変数は、関数外で定義した変数です。プログラム内で有効な変数となります。
pythonの場合のグローバル変数を関数内で使う場合は参照のみ有効となります。関数内で値を書き換える場合は、関数内でその変数を「global (変数名)」として定義する必要があります。
ローカル変数は、関数内部で定義した変数です。
定義した関数内でのみ有効となり、関数の処理が終わると消滅します。
おわりに
Pythonの文法を1日でマスターする(前編)として、プログラム構成からコメント、変数、関数について書いてきました。次回の後編では、演算子、条件文、制御文について書いていきます。
この前編と後編でPythonの文法の基本的な部分は網羅されているかと思います。
実際にanaconda Powershell Promptを使ってプログラムを書きながら確認すると理解が深まると思います。
コメント