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を割り切れる。
コメントを残す