Pythonプログラミングにおいて、条件分岐はもっとも基本的かつ重要な構文のひとつです。
ユーザーの入力や計算結果に応じて処理を変えたり、複雑な分岐ロジックを組み立てたりする際に欠かせません。
本記事では、Pythonのif、elif、elseを使った条件分岐の書き方を、初級者向けにわかりやすく解説します。最後には演習問題と解答例も用意していますので、学んだ知識をぜひ実践で確認してください。
条件分岐とは
条件分岐(conditional branching)とは、ある条件式が真(True)か偽(False)かによって、プログラムの実行経路を分ける仕組みです。
たとえば「数値が0以上かどうか」「ユーザーがログインしているかどうか」などを判定し、異なるコードブロックを実行できます。
if文の基本構文
if文の条件式は、比較演算子(==, !=, <, >, <=, >=)や論理演算子(and, or, not)を使って真偽判定を行います。
条件式がTrueのとき実行される処理は、インデント(半角スペース4つが慣例)でブロックを表現します。
if 条件式:
# 条件式がTrueのとき実行される処理
例:数値が正のときメッセージを表示
num = 5
if num > 0:
print("numは正の数です")
elifの使い方
複数の条件を順番に評価したい場合に使用します。
最初にTrueになったブロックだけが実行され、残りはスキップされます。
if 条件式1:
# 条件式1がTrueのとき
elif 条件式2:
# 条件式1がFalseかつ条件式2がTrueのとき
例:数値の正負ゼロ判定
num = 0
if num > 0:
print("正の数です")
elif num == 0:
print("ゼロです")
elseの使い方
ifやelifのいずれの条件にも当てはまらない場合のデフォルト処理を記述します。
if 条件式:
# 条件式がTrue
else:
# 条件式がFalseのとき
例:偶数奇数判定
num = 7
if num % 2 == 0:
print("偶数です")
else:
print("奇数です")
ネストした条件分岐
条件分岐の中にさらにif
を入れ子(ネスト)にして、複雑なロジックを組み立てることも可能です。
score = 75
if score >= 60:
if score >= 80:
print("優秀です")
else:
print("合格です")
else:
print("不合格です")
この例では、60点以上かつ80点以上で「優秀」、60点以上80点未満で「合格」、60点未満で「不合格」と判定しています。
実践的な例:ユーザー入力によるメニュー判定
choice = input("1: 登録 2: ログイン 3: 終了 >> ")
if choice == "1":
print("ユーザー登録画面へ移動します")
elif choice == "2":
print("ログイン画面へ移動します")
elif choice == "3":
print("プログラムを終了します")
else:
print("無効な選択です")
input()で取得した文字列と比較するときは、数値ではなく文字列として判定します。
elseを用意しておくことで、不正な入力への対処もできます。
注意点・ベストプラクティス
- 比較演算子の間違いに注意
==(等しい)と=(代入)は別物です。比較には必ず==を使いましょう。 - 論理演算子を組み合わせる
and、orで複数条件を同時に判定できます。 - 可読性を重視
ネストが深くなると読みにくくなるため、関数化や辞書によるマッピングでシンプルに保つ工夫をしましょう。 - ガード節(early return)の活用
関数内で最初にエラー条件を判定して早期に抜けることで、ネストを浅くできます。
まとめ
- if:最初の条件判定
- elif:追加の条件判定
- else:どの条件にも当てはまらない場合の処理
- ネストや論理演算子で複雑な判定が可能
- 可読性を考慮して、深いネストは避ける
条件分岐はプログラムの流れを制御する中心的な仕組みです。しっかりマスターして、さまざまな場面で活用しましょう。
演習問題
- 偶数・奇数判定プログラム
ユーザーから整数を入力させ、その数が偶数なら「偶数です」、奇数なら「奇数です」と出力するプログラムを作成してください。 - 三段階評価プログラム
ユーザーから0〜100の点数を入力させ、以下の通り評価を出力するプログラムを作成してください。- 90点以上:優
- 70点以上90点未満:良
- 50点以上70点未満:可
- 50点未満:不可
- ログイン認証プログラム
予め定めたユーザー名(admin)とパスワード(password123)を使い、ユーザーから入力された組み合わせが一致すれば「ログイン成功」、異なれば「ログイン失敗」と出力するプログラムを作成してください。
解答例
演習1:偶数・奇数判定
num = int(input("整数を入力してください: "))
if num % 2 == 0:
print("偶数です")
else:
print("奇数です")
演習2:三段階評価
score = int(input("点数(0〜100)を入力してください: "))
if score >= 90:
print("評価:優")
elif score >= 70:
print("評価:良")
elif score >= 50:
print("評価:可")
else:
print("評価:不可")
演習3:ログイン認証
USERNAME = "admin"
PASSWORD = "password123"
user = input("ユーザー名: ")
pw = input("パスワード: ")
if user == USERNAME and pw == PASSWORD:
print("ログイン成功")
else:
print("ログイン失敗")
以上で、Pythonのif、elif、elseによる条件分岐の基礎と演習問題は完了です。ぜひ自分でもアレンジを加えて、理解を深めてみてください!