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
