Pythonの基本文法の学習の続きです。
今回は、リスト・ディクショナリやループや関数についての基本文法を確認していきます。
リスト(配列)
リスト(配列)は、カンマ区切りで数字や文字列を列挙して[]で囲みます。
# 文字列のリスト a = ["六甲山", "中山", "摩耶山", "ゴロゴロ岳", "観音山"] # 数字のリスト b = [1,2,3,4,5,6,7,8,9,10] # 数字も文字列も含んだリスト c = [1,2,3,4,5, "六甲山", "中山", "摩耶山"]
連続した数字のリストは、range関数が使用できます。
#[0,1,2,3,4,5,6,7,8,9]と同じ d = range(0,10)
リストのスライシング
リストを部分的に取り出すためのスライシング機能です。
#リストの1番目から3番目まで(3番目は含まない) print(a[1:3]) #['中山', '摩耶山'] #リストの2番目以降すべて print(a[2:]) #['摩耶山', 'ゴロゴロ岳', '観音山'] #リストの3番目まで(3番目は含まない) print(a[:3]) #['六甲山', '中山', '摩耶山'] #リストの1番目から後ろから1番目まで print(a[1:-1]) #['中山', '摩耶山', 'ゴロゴロ岳']
ディクショナリ
Javaで云うMapのような形で、キーと値を紐付けて管理できます。
stationery = {"pencil" : 100, 'text' : 300} stationery['pen'] = 150 stationery['notebook'] = 200 print(stationery['pencil']) #100 print(stationery['notebook']) #200
ループ
他のプログラム言語と同様、ループはforを使用します。
リストの各項目ごとにループする場合は、以下のようにします。
a = ["六甲山", "中山", "摩耶山", "ゴロゴロ岳", "観音山"] for item in a: print(item)
aの各要素の値がitem変数に格納されてループされます。
pythonには、for/elseが用意されています。
elseの処理は、ループが終わった時に実行されます。
a = ["六甲山", "中山", "摩耶山", "ゴロゴロ岳", "観音山"] for item in a: print(item) else: print("終わり")
実行結果は、
六甲山 中山 摩耶山 ゴロゴロ岳 観音山 終わり
if/elseの利用シーンはいまいちピンときませんが・・・
リストの要素ごとにループするのではなく、
指定回数分ループするには、range関数を使用すれば実現できます。
for item in range(0,10): print(item)
実行結果
0 1 2 3 4 5 6 7 8 9
関数
関数は、defで宣言し、返す値がある場合は、returnで値を呼び出し元に返します。
from decimal import Decimal def zeikomi(zeinuki): zeikomi = Decimal("1.08") * Decimal(zeinuki) return zeikomi print(zeikomi("150"))
実行結果
162.00
Pythonのファイル
Pythonのプログラムは、拡張子.pyで、文字コード「UTF-8」で保存します。
日本語を扱う場合、文字コード「SJIS」で保存すると・・・
SyntaxError: Non-UTF-8 code starting with '\x98' in file test2.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
こんな感じでエラーになります。
最後に・・・
Pythonのファイルは、拡張子.pyとなりますが、
おそらくPythonの頭文字からとっているのだと思います。
が、どうも私には「ピヨ」と読めてしまいます。。。
お読みいただき、ありがとうございます。
機械学習とかは、まだまだ先になりそう・・・。