3.2. Python の基本事項

PySIMPLE を利用するに当たって,基本となる Python の文法を簡単に説明します. Python の詳細な文法については 公式マニュアル をご確認ください.

3.2.1. 数値,文字列

整数型の int,浮動小数点型の float,文字列型の str などが存在します. 文字列における「'」と「"」は同じです.:

>>> 2 + 3
5
>>> 'ほげ'
'ほげ'
>>> "ほげ"
'ほげ'

半角空白文字(半角スペース)と改行はモデル中では任意に用いる事ができます. 全角空白文字(全角スペース)を用いる事はできません.

「#」から行末まではコメントになります.:

>>> 3.14  # 円周率
3.14

「変数名= オブジェクト」でオブジェクトを保持する変数を作成します. 一度作成した変数に再度,異なるオブジェクトを代入することもできます.:

>>> x = 3.14
>>> x
3.14
>>> x = 'pi'
>>> x
'pi'

3.2.2. データ構造

3.2.2.1. リスト

リストは様々なオブジェクト含むことができるデータ構造です.[] で囲んで , で要素を並べます.:

>>> lst = [3, 'spam', 3.14, [0, 'ham']]
>>> lst
[3, 'spam', 3.14, [0, 'ham']]

リストに対して [index] で index 番目の要素を取り出したり,修正することができます. ただし,最初の要素を 0 番目と数えます.:

>>> lst[1]
'spam'
>>> lst[1] = 'egg'
>>> lst[1]
'egg'

3.2.2.2. タプル

タプルはリストと似ていますが,値を変えることができません.

>>> tpl = (3, 'spam', 3.14, [0, 'ham'])
>>> tpl[1]
'spam'
>>> tpl[1] = 'egg'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

タプルはリストと異なり () で囲む必要がない場合もあるのですが,慣れない内は括弧を付けるようにしておきましょう. また,リストとタプルは list 関数, tuple 関数によりそれぞれ相互変換できます.:

>>> tpl = (1, 2, 3)
>>> lst = list(tpl)
>>> lst
[1, 2, 3]
>>> tuple(list(tpl))
(1, 2, 3)

3.2.2.3. 辞書

辞書は対応付けのためのデータ構造です. キー: で挟み , で並べて {} で囲みます.:

>>> dct = {'spam': 1, 'ham': 2}
>>> dct['ham']
2

この場合,キーは 'spam' と 'ham',値は 1 と 2 です. 次の例はもう少し複雑で,キーがタプルになっています.:

>>> dct = {(1, 2): 3, (1, 3): 4}
>>> dct[(1,3)]
4
>>> dct[1,3]
4

dict 関数を用いることでタプルの列から辞書を作ることもできます.:

>>> dct = dict([('X', 1), ('Y', 2), ('Z', 3)])
>>> dct
{'X': 1, 'Y': 2, 'Z': 3}

3.2.3. 組み込み関数

最初から使うことのできる関数は他にもいろいろあります. ここでは PySIMPLE を記述する上で有用なものを幾つか紹介します.

3.2.3.2. range

range 関数は等差数列を作るための関数です. range(stop) で 0 から stop-1 までの等差数列を, range(start, stop) で start から stop-1 までの等差数列を作ります.:

>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(2, 5))
[2, 3, 4]

3.2.3.3. zip

zip 関数を使うと 2 つのリスト等から辞書をつくるときに便利です.:

>>> list(zip(['X', 'Y', 'Z'], [1, 2, 3]))
[('X', 1), ('Y', 2), ('Z', 3)]
>>> dict(zip(['X', 'Y', 'Z'], [1, 2, 3]))
{'X': 1, 'Y': 2, 'Z': 3}

zip 関数は引数それぞれの 1 番目,2 番目…を取り出した列を作ります.