-Python- 制御構文

条件分岐には if を使います.if 文では,インデントが意味を持ちます.

以下の例のように,REPLで,コロン(:)で終わる文を入力すると,その次の行ではインデントする行を示すためにプロンプトは ... に変わります.インデント行を終了させるには,何も入力せずにreturnを押します.

>>> x = 100
>>> if x > 10:
...     print("Bigger than 10")
... else:
...     print("Smaller than 10")
... 
Bigger than 10
>>> 
 
繰り返しには for を使います.変数を1つずつ増やしながら繰り返す処理などには for 〜 inrange(...) 形式が使われます.
>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4
range関数には最大で引数を3つまで指定することができます.引数2つの場合は始点,終点を表し,3つの場合は始点,終点,ステップを表します.終点の指定については,その値になる1つ手前でループが終了するので,注意が必要です.
 
以下にrange関数の使用例を示します.
>>> for i in range(2, 5):
...     print(i)
... 
2
3
4
>>> for i in range(3, 13, 2):
...     print(i)
... 
3
5
7
9
11
>>> 
 
ある条件を満たす間処理を繰り返す場合にはwhileを使います.
>>> while i < 5:
...     print(i)
...     i += 1
... 
0
1
2
3
4
 
制御構造のネストはインデントのネストで表現されます.いかにFizzBuzz問題の実装例を示します.FuzzBuzz問題とは
1から順に数字を出力せよ.ただし,3の倍数では数字の代わりにFizzと出力し,15の倍数ではFuzzBuzzと出力せよ.
というものです.
 
for i in range(1, 21):
    if i %15 == 0:
        print('FizzBuzz')
    elif i % 3 == 0:
        print('Fizz')
    elif i % 5 == 0:
        print('Buzz')
    else:
        print(i)
 
elifはelseとifをあわせたものです.else句の中にif文がどんどんネストされると,pythonの文法的性質によってインデントが深くなってしまいますが,elifを使うことで,これを防ぐことができます.
実行結果は以下のようになります.
1
2
4
Buzz
7
8
Buzz
11
13
14
16
17
19
Buzz