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番目の要素へアクセスできます。

Image of Slicing
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ではインデントにタブとスペースを混ぜることを認めていません。

参照:https://peps.python.org/pep-0008/

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