if文の書き方
条件分岐がどんなのもであったり、条件分岐するために使用する演算子をこれまでの章で学習してきました。
この章では実際に条件分岐の文を書いていきます。条件分岐で if を使います。
if文の書き方は以下の通りです。
if 条件式:
処理1
else:
処理2
条件式が True の場合 処理1 が実行され、 False の場合は 処理2 が実行されます。
実際にプログラムで確認してみます。
コード
# 変数宣言
banana_price = 150
# バナナが200円以下か判別
if banana_price <= 200:
print("バナナを購入。")
else:
print("バナナは買わない。")
print("買い物終了。")
実行結果
バナナを購入。
買い物終了。
banana_price の値を変えると、実行結果が変わるので、実際に変えて試してみましょう。
if文を書く際に注意する点があります。
1. if と else の最後に コロン( : ) をつける。
2. 処理の部分は インデント する。
インデントとは、字下げのこと。
Pythonにおいてはインデントはとても重要です。
インデントは字下げのことで、もっと簡単に言うと、行頭の空白のことです。空白の数に決まりはありませんが、4つが推奨されることが多いです。
Pythonでは、インデントで一つのブロックか判別します。
この場合は、
条件式が True の時に実行される ブロック1
条件式が False の時に実行される ブロック2
条件分岐に関わらず、必ず実行される ブロック3
と分けられます。
インデントが予期せぬところでされていたり、空白の数が違ったりするとエラーになりますので注意してください。
コード
# 変数宣言
banana_price = 150
# バナナが200円以下か判別
if banana_price <= 200:
print("バナナを購入。")
print("インデント不揃い")
else:
print("バナナは買わない。")
print("買い物終了。")
実行結果
/Users/python/python-for-blog $ /usr/bin/python3 /Users/python/python-for-blog/if.py
File "/Users/python/python-for-blog/if.py", line 7
print("インデント不揃い")
IndentationError: unexpected indent
また if文 の中で if文 を書く場合は、さらにインデントします。
if 条件式:
処理1
if 条件式:
処理2
else:
処理3
else:
処理4
elifの書き方
「もしバナナが200円以下なら2個買おう。そうじゃなければバナナが300円以下なら1個買おう。そうじゃなかったらバナナは買わない。」と言うように、一つの条件式に該当しなかった時、別の条件式で確認することもあります。その時は elif を使います。
elif の書き方は if と同じように書きます。
if 条件式A:
処理1
elif 条件式B:
処理2
else:
処理3
条件式A で True になった場合、処理1 が実行されて、処理2 と 処理3 は実行されません。
条件式A で False になった場合、処理1 は実行されずに、条件式B のチェックになります。
条件式B で True になった場合、処理2 実行されて、処理3 は実行されません。
条件式B で False になった場合、処理2 は実行されず、処理3 が実行されます。
elif をプログラムで確認してみます。
コード
# 変数宣言
banana_price = 250
# バナナが200円以下か
if banana_price <= 200:
print("バナナを2個購入。")
# バナナが300円以下か
elif banana_price <= 300:
print("バナナを1個購入。")
# それ以外
else:
print("バナナは買わない。")
print("買い物終了。")
実行結果
バナナを1個購入。
買い物終了。
banana_price の値を変えると、実行結果が変わるので、実際に変えて試してみましょう。
elif と else は省略可能です。
コード
# 変数宣言
banana_price = 150
# バナナが200円以下か
if banana_price <= 200:
print("バナナを2個購入。")
print("買い物終了。")
実行結果
バナナを2個購入。
買い物終了。
練習問題
問題1
変数2つを用意して、2つの変数に適当な数字を代入し、
2つの変数を比べて大きい方の値を出力するプログラムを作成せよ。
コード
# 変数宣言
num1 = 4
num2 = 3
# 変数を比較
# num1が大きい場合
if num1 > num2:
print("num1の方が値が大きい。num1の値", num1)
# num2が大きい場合
elif num2 > num1:
print("num2の方が値が大きい。num2の値:", num2)
# それ以外(値が一緒)
else:
print("num1とnum2は値が同じ")
※ コードは解答例です。正解は一つではありません。
問題2
スポーツの最終戦で、チームAが勝ってチームBが負けの場合、「チームAが優勝」それ以外は「チームBが優勝」と出力するプログラムで作成せよ。
チームA、チームBの勝ち負けはそれぞれ「team_a_result」、「team_b_result」という変数を用意して、「win」か「lose」を代入してプログラムを作成すること。
コード
# 変数宣言
team_a_result = "win"
team_b_result = "lose"
# チームAが勝ち、且つチームBが負けなら、チームAが優勝
if team_a_result == "win" and team_b_result == "lose":
print("チームAが優勝。")
# それ以外はチームBが優勝
else:
print("チームBが優勝")
※ コードは解答例です。正解は一つではありません。
team_a_result、team_b_resultの値を変えて実行結果が正しいかも確認してみましょう。