技術っぽいことを書いてみるブログ

PythonとかVue.jsとか技術的なことについて書いていきます。

Pythonの基本文法(リスト・ディクショナリ・ループ)

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の頭文字からとっているのだと思います。
が、どうも私には「ピヨ」と読めてしまいます。。。

お読みいただき、ありがとうございます。
機械学習とかは、まだまだ先になりそう・・・。