Python チュートリアル - 制御フローツール
このセクションでは、Python プログラミングの制御フローツールについて学習します。最も使用される制御フローツールは、if ... else
構造です。
if…else
ステートメント
ステートメントの 2つのブロックがあり、いくつかの条件に基づいて 1つだけを実行する場合、if…else
ステートメントが使用されます。Python プログラミングでは、主に if…elif…else
が意思決定の構成要素として使用されます。
if
ステートメント
if
ステートメントにはステートメントのブロックが 1つしかなく、このブロックは条件が True
の場合にのみ実行され、条件が False
の場合は無視されます。
以下は Python の if
ステートメントの構文です:
if condition:
statement(s)
Python の if
ステートメントの本体は中括弧で囲まれていませんが、代わりにインデントが使用されています。ボディの終わりは、最初の意図しない行で示されます。
if
ステートメントの例
if
ステートメントが使用される次の例を考えてみましょう。
a = 24
if a % 2 == 0:
print(a, "is an even number")
b = 23
if b % 2 == 0:
print(b, "is an odd number")
24 is an even number
このコードでは、変数 a
に最初に値が割り当てられ、次に if
ステートメントの条件が評価されます。a
のモジュラスを 2
で取り、%
(mod)の結果が 0 である場合、if
と print
ステートメントが実行されます。
次に、b
には奇数の 23
が割り当てられます。if
ステートメントの条件は True
ではないため、print(b、 "is is odd number")
は実行されません。
if ... else
ステートメント
以下は、if ... else
ステートメントの構文です。
if condition:
block of statements
else:
block of statements
if ... else
では、if
条件が True
の場合、対応するステートメントのブロックが実行されます。そうでない場合、else
部分の下のステートメントのブロックが実行されます。
if ... else
ステートメントの例
if ... else
が使用されている以下のコードを検討してください。
a = 44
if a % 2 == 0:
print(a, "is an even number")
else:
print(a, "is an odd number")
44 is an even number
ここで、a
が偶数の場合、a is a even number
が出力されます。それ以外の場合、a は奇数
が出力されます。
if
ブロックと else
ブロックは、実行も無視もできません。条件が True
であるかどうかに基づいて、1つのブロックのみが実行されます。if ... elif ... else
ステートメント
以下は、if ... elif ... else
ステートメントの構文です:
if condition:
block of statements
elif condition:
block of statements
else:
block of statements
elif
は else if
の略で、この if..elif..else
構文で複数回使用できます。
if
の下の条件が False
になると、elif
の条件がチェックされます。if
と elif
のすべての条件が False
の場合、else
部分が実行されます。
if ... elif ... else
ステートメントの例
複数の条件をチェックする if ... elif ... else
ステートメントを使用した以下のコードを考えてください。
a = -34
if a > 0:
print("Number is Positive")
elif a < 0:
print("Number is Negative")
else:
print("Number is zero")
Number is Negative
ネストされた if
ステートメント
Python では、別の if
ステートメント内に if
を含めることができます。これはネストされた if
ステートメントと呼ばれます。
任意のタイプの if
ステートメントを何度でもネストできます。しかし、プログラムの読みやすさが悪化するため、プログラミング言語でネストされた if
構造を使用することは良い習慣ではありません。
ネストされた if
ステートメントの例
次のコードでは、ネストされた if
構造が最大数を求めるために使用されます:
T = 52
if T > 25:
if T < 50:
print("Temperature is higher than 25 but lower than 50")
else:
print("Temperature is higher than 50")
else:
if T < 0:
print("Temperature is lower than 0")
else:
print("Temperature is higher than 0 but lower than 25")
Temperature is higher than 50