2.2. 複合データ型・for/while/if文#
2.2.1. 複合データ型#
よく用いる複合データ型はlistとdictionaryです。複数の変数や値を格納する上で便利です。
リスト:
[1, 2, 3, 10]
辞書:
{'apple':10, 'banana': 3, 'orange':100}
a = 1
b = 0.5
c = 'Hi'
list_test = [a, b, c]
print(list_test)
[1, 0.5, 'Hi']
リストのn番目の要素へアクセスする場合、[]
を使います。
0番目の要素を取り出したい場合は[0]
と指定します。
インデックスに負の値を指定すると、末尾からの位置になります。例えば、末尾の要素へアクセスする場合は [-1]
としています。
また複数の要素を指定することができます。[0:10]
とすると、0番目から9番目の要素へアクセスできます。

list_test[0]
1
list_test[-1]
'Hi'
list_test[0:1]
[1]
list_test[0:2]
[1, 0.5]
よく使う組み込み関数として len()
もあります。リストの長さや文字列の長さを確認できます。
len(list_test)
3
len('Hello')
5
なお、文字列にも []
で指定した順番の要素にアクセスできます。
text = "Hello everybody"
text[1]
'e'
text[:9]
'Hello eve'
text[-8:-2]
'verybo'
辞書はkeyとvalueを格納できます。
{key:value, key:value}
keyを[]
で指定するとそのkeyに対応するvalueが取り出せます。
dict_test = {'a': 20, 'b': 1, 'c': 'Good night'}
print(dict_test['a'])
print(dict_test['b'])
print(dict_test['c'])
20
1
Good night
dict_list = {'number': [1, 2, 3, 4], 'TF': [True, False, True], 'Greeting': ['Good morning', 'Hello', 'Good night']}
print(dict_list['number'])
print(dict_list['TF'])
print(dict_list['Greeting'])
print(dict_list['Greeting'][-1])
[1, 2, 3, 4]
[True, False, True]
['Good morning', 'Hello', 'Good night']
Good night
2.2.2. for文、while文、if文#
Pythonの制御構文のうちよく使われるものは、for
, while
, if
です。
制御構文は、ヘッダとブロックで成り立ちます。
Pythonをはインデントでブロックを囲みます。
Note
インデントは4つの空白スペースで行ってください。
タブを使っても良いですが、スペースが好ましいインデントの方法とされています。Pythonではインデントにタブとスペースを混ぜることを認めていません。
2.2.2.1. for文#
for i in [0, 1, 2, 3, 4, 5]: #ヘッダ部分
print(i) #ブロック部分 空白4文字かタブでインデントを作ります。
0
1
2
3
4
5
for i in [0, 1, 2, 3, 4, 5]: #ヘッダ部分
print(i) #ブロック部分 半角スペースで4文字部分先頭にインデントが求められます
for j in [1, 2, 3, 4, 5]:
print(j)
print(i+j)
print(i)
print('done small looping')
print('done big looping')
0
1
1
2
2
3
3
4
4
5
5
0
done small looping
1
1
2
2
3
3
4
4
5
5
6
1
done small looping
2
1
3
2
4
3
5
4
6
5
7
2
done small looping
3
1
4
2
5
3
6
4
7
5
8
3
done small looping
4
1
5
2
6
3
7
4
8
5
9
4
done small looping
5
1
6
2
7
3
8
4
9
5
10
5
done small looping
done big looping
2.2.2.2. while文#
i = 0
while i < 10:
print(i)
i += 1
0
1
2
3
4
5
6
7
8
9
2.2.2.3. if文#
i = 2
if i % 2 == 0:
print(i)
2
i = 3
if i % 2 == 0:
print(i)
else:
print('could not divided by 2')
could not divided by 2
i = 2
if i == 0:
print('i = 0')
elif i % 2 == 0:
print(i)
else:
print('error')
2
for i in range(0, 10): #range(0, 10)は0から9(10-1)の整数値を一つづつ渡します
if i == 0:
print('i = 0')
elif i % 2 == 0:
print(i)
else:
print('error')
i = 0
error
2
error
4
error
6
error
8
error
range(0, 10)
range(0, 10)
list(range(0, 10)) == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
True