if-elif-else文で複数の選択肢を作ろう
学習の目標
本章では、以下の内容を学習します。
- if-elif-else文の基本構文と使い方を理解する
- 複数の条件を順番に判定する方法を習得する
- 3つ以上の選択肢を持つプログラムの作成方法を学ぶ
- 成績判定システムの実装を通じて実践的な使い方を理解する
3つ以上の選択肢が必要な場面
これまでのif-else文では、2つの選択肢しか作ることができませんでした。 しかし、実際のプログラムでは3つ以上の選択肢が必要になることがよくあります。
例えば、テストの成績を「優秀」「普通」「要努力」の3段階で判定したり、年齢によって「子供」「大人」「シニア」に分類したりする場合です。 このような場面では、if-elif-else文を使うことで、複数の条件を効率的に処理できます。
if-elif-else文は、上から順番に条件を確認し、最初に満たされた条件の処理を実行します。 どの条件も満たされない場合は、最後のelse文の処理が実行されます。
if-elif-else文の基本構文
if-elif-else文の基本的な構文は以下のようになります。
if 条件1:
条件1が満たされた場合の処理
elif 条件2:
条件2が満たされた場合の処理
elif 条件3:
条件3が満たされた場合の処理
else:
どの条件も満たされなかった場合の処理
elif
は「else if」の省略形で、追加の条件を意味します。 elifは必要な分だけ何個でも書くことができます。 最後のelse文は省略することも可能ですが、あった方が安全です。
重要なポイントは、条件が上から順番に確認され、最初に満たされた条件の処理のみが実行されることです。 そのため、条件の順序が結果に影響することがあります。
成績判定プログラムを作ってみよう
VS Codeでgrade_system.py
という新しいファイルを作成し、以下のコードを入力してください。
# ユーザーからテストの点数を入力してもらう
score_input = input("テストの点数を入力してください: ")
score = int(score_input)
if score >= 90:
print(f"{score}点:優秀な成績です!")
elif score >= 70:
print(f"{score}点:良好な成績です")
elif score >= 60:
print(f"{score}点:合格です")
else:
print(f"{score}点:不合格です。もう少し頑張りましょう")
print("成績判定が完了しました")
このプログラムを実行してみましょう。 例えば「85」を入力した場合の実行結果は以下のようになります。
テストの点数を入力してください: 85
85点:良好な成績です
成績判定が完了しました
プログラムの動作を詳しく見てみましょう。 点数が85の場合、最初の条件score >= 90
はFalseになります。 次の条件score >= 70
はTrueになるので、この処理が実行されます。 その後の条件は確認されずにスキップされます。
年齢による分類プログラムを作ってみよう
VS Codeでage_category.py
という新しいファイルを作成し、以下のコードを入力してください。
# ユーザーから年齢を入力してもらう
age_input = input("年齢を入力してください: ")
age = int(age_input)
if age < 13:
print("子供料金が適用されます")
elif age < 18:
print("学生料金が適用されます")
elif age < 65:
print("大人料金が適用されます")
else:
print("シニア料金が適用されます")
print("料金確認が完了しました")
例えば「16」を入力した場合の実行結果は以下のようになります。
年齢を入力してください: 16
学生料金が適用されます
料金確認が完了しました
このプログラムでは、年齢によって4つの料金カテゴリに分類しています。 16歳の場合、最初の条件age < 13
はFalseですが、次の条件age < 18
がTrueになるので、学生料金が適用されます。
条件の順序に注意しよう
if-elif-else文では、条件の順序が重要です。 上から順番に条件が確認されるため、順序を間違えると意図しない結果になることがあります。
例えば、先ほどの成績判定プログラムで条件の順序を変えてみましょう。
# 間違った順序の例
score = 85
if score >= 60: # この条件が最初に満たされてしまう
print("合格です")
elif score >= 70:
print("良好な成績です")
elif score >= 90:
print("優秀な成績です!")
この場合、85点でも最初の条件score >= 60
が満たされてしまうため、「合格です」というメッセージが表示されます。 意図した「良好な成績です」は表示されません。
そのため、if-elif-else文を使う際は、より厳しい条件(範囲の狭い条件)から順番に書くことが重要です。
まとめ
本章では、Pythonのif-elif-else文について学習しました。 以下のポイントを理解できたことと思います。
if-elif-else文を使うことで、3つ以上の選択肢を持つ条件分岐を効率的に記述できるようになりました。 複雑な判定処理も、条件を順番に並べることで読みやすく記述できます。
条件は上から順番に確認され、最初に満たされた条件の処理のみが実行されます。 そのため、条件の順序を適切に設定することが重要です。
成績判定や年齢分類など、実用的な例を通じて複数条件の活用方法を学びました。 日常生活でよくある判定処理を、プログラムで表現できるようになりました。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。