制御構文

スクリプトは上から順に実行されますが、
同じ処理を繰り返したり、分岐させたりすることができます。

このページの目次

繰り返し

リストの各要素に同じ処理を繰り返す場合、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+[

練習

  1. リストにある数字が偶数か奇数かを表示しよう
  2. リストにある数字の合計を表示しよう
  3. リストにある数字の平均値を表示しよう