スクリプトは上から順に実行されますが、
同じ処理を繰り返したり、分岐させたりすることができます。
繰り返し
リストの各要素に同じ処理を繰り返す場合、for 文を使います。
d = [3, 7, 9, 1] for x in d: print(x) # この処理が要素を入れ替えながら4回繰り返される
変数 x に d の要素がひとつづつ入り、処理が計4回繰り返されます。
繰り返されるのは字下げ(インデント)した部分です。
d = [3, 7, 9, 1] for x in d: x *= 2 # *= は x = x*2 と同じ処理 この行と print(x) # この行が4回繰り返される print(d) # この行は1回だけ実行
Pythonではインデントに意味があります。
インデントされた部分をブロックと呼びます。
for文のように、最後にコロン : があると、後ろに必ずブロックが入る、と考えるとよいでしょう。
(ブロックに何もないとエラーになる。一時的に処理を消すときは 何もしない命令 pass を入れるとよい)
range(n)という連番が入ったリストを作る関数をよく使います。
d = [3, 7, 9, 1] for n in range(4): # [0,1,2,3]というリストが生成される print(d[n]) # この行が4回繰り返される
分岐
処理を分岐する場合、if文を使います。
d = [3, 7, 9, 1] for x in d: print(x) # この行は for文のブロック(繰り返される) if x > 5: print('This number is larger than 5') # 要素が5より大きいとき実行
if文は、後ろの条件文が True のとき、コロンに続くブロックを実行します。
if文は if, else または if, elif, else とセットで使うことができます。
d = [3, 7, 9, 1] for x in d: print(x) if x > 5: print("5より大きい") else: print("5以下")
d = [3, 7, 9, 1] for x in d: print(x) if x > 8: print("8より大きい") elif x > 5: print("5より大きい") else: print("5以下")
インデントは通常スペース4つです。タブキーでも入力できます。
複数行をまとめてインデント(1段深く)するときは範囲指定して
Ctrl+]複数行をまとめて逆インデント(1段浅く)するときは範囲指定して
Ctrl+[
練習
- リストにある数字が偶数か奇数かを表示しよう
- リストにある数字の合計を表示しよう
- リストにある数字の平均値を表示しよう