Python 3条件分岐

Python条件ステートメントは、1つ以上のステートメントの実行結果(TrueまたはFalse)に基づいて、実行されるコードブロックを決定します。

次の図から、条件ステートメントの実行プロセスを簡単に理解できます。

コード実行プロセス

if ステートメント

Pythonでのifステートメントの一般的な形式は次のとおりです。

if condition_1: 
    statement_block_1 
elif condition_2: 
    statement_block_2
else: 
    statement_block_3
  • 「condition_1」がTrueの場合、「statement_block_1」ステートメントが実行されます。
  • 「condition_1」がFalseの場合、「condition_2」が判断されます。
  • 「condition_2」がTrueの場合、「statement_block_2」ステートメントが実行されます。
  • 「condition_2」がFalseの場合、「statement_block_3」ステートメントが実行されます。

Pythonはelseifの代わりにelifを使用するため、ifステートメントのキーワードはif-elif-elseです。

注意点

  • 各条件の後にコロンを使用して、条件が満たされた後に次のステートメントブロックが実行されることを示します。
  • インデントを使用してステートメントブロックを分割します。同じインデント番号のステートメントが一緒になってステートメントブロックを形成します。
  • Pythonにはswitch-caseステートメントがありません。

実例

以下は、簡単なifの実例です。

#!/usr/bin/python3 

var1 = 100 
if var1: 
    print ("1 - if 式条件は true") 
    print (var1) 

var2 = 0 
if var2: 
    print ("2 - if 式条件は true") 
    print (var2) 
    print ("Good bye!")

上記のコードを実行すると、出力結果は次のようになります。

1- if 式の条件がtrueの場合
100
Good bye!

結果から変数var2が0であるため、対応するifのステートメントが実行されていないことがわかります。

次の例は、犬の年齢計算の判断を示しています。

#!/usr/bin/python3 
age = int(input("犬の年齢を入力してください: ")) 
print("") 
if age <= 0: 
    print("冗談だろう!") 
elif age == 1: 
    print("14歳の人間に相当する。") 
elif age == 2: 
    print("22歳の人間に相当する。") 
elif age > 2: 
    human = 22 + (age -2)*5 
    print("人間の年齢に相当する: ", human) 

###プロンプトを終了する。 
input("Enterをクリックして終了する")

上記のスクリプトをdog.pyファイルに保存し、スクリプトを実行します。

$ python3 dog.py
犬の年齢を入力してください:1
14歳に相当する。
Enterをクリックして終了する。

以下は、ifで一般的に使用される演算子です。

演算子説明
<小なり
<=小なりあるいはイコール
>大なり
=大なりあるいはイコール
==イコール、2つの値が等しいかどうかを比較する
!=等しくない

実例

#!/usr/bin/python3 
# プログラムは==演算子を示す
# 数字を使う 
print(5 == 6) 
# 変数を使用する 
x = 5 
y = 8 
print(x == y)

上記の実例の出力結果は以下になります。

False
False

high_low.pyファイルは、数値比較演算を示しています。

実例

#!/usr/bin/python3 
# この例は、数を推測するゲームを示している 
number = 7 
guess = -1 
print("数字推測ゲーム!") 
while guess != number: 
    guess = int(input("推測した数を入力してください:")) 

if guess == number: 
    print("おめでとう、当たり!") 
elif guess < number: 
    print("推測した数字が小さい...") 
elif guess > number: 
    print("推測した数字が大きい...")

上記のスクリプトを実行すると、例の出力結果は次のようになります。

$ python3 high_low.py 
数字推測ゲーム!
推測した数を入力してください:1
推測した数字が小さい...
推測した数を入力してください:9
推測した数字が大きい...
推測した数を入力してください:7
おめでとう、当たり!

if ネスト

ネストされたifステートメントでは、if … elif … else構造を別のif … elif … else構造に配置できます。

if 式1:
    ステートメント
    if 式2:
        ステートメント
    elif 式3:
        ステートメント
    else:
        ステートメント
elif 式4:
    ステートメント
else:
    ステートメント

実例

# !/usr/bin/python3 

num=int(input("数値を入力してください:")) 
if num%2==0: 
    if num%3==0: 
        print ("入力した数値は2と3を割り切れる") 
    else: 
        print ("入力する数値は2で割り切れるが、3では割り切れない") 
else: 
    if num%3==0: 
        print ("入力した数値は3で割り切れるが、2で割りきれない") 
    else: 
        print ("入力した数値は2と3を割り切れない")

上記のプログラムをtest_if.pyファイルに保存すると、実行後の出力は次のようになります。

$ python3 test.py
数字を入力してください:6
入力する数値は2と3を割り切れる。
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です