if / elif / else × 入力 × 複雑条件
ここでは if / elif / else + 複雑条件 を使って、
「実際にユーザー入力を扱う小さなアプリ」風の 実践練習10問 を用意。
それぞれに
✅ 問題文
✅ 解答例コード
✅ ステップごとの詳細解説
を付けています。
✅ Q1:年齢判定アプリ
問題
ユーザーの年齢を入力して、次のように表示するプログラムを作りましょう:
- 0歳未満または150歳超 → 「入力値が不正です」
- 0〜12歳 → 「子ども」
- 13〜19歳 → 「ティーン」
- 20〜64歳 → 「大人」
- 65歳以上 → 「シニア」
💡 解答例
age = int(input("年齢を入力してください: "))
if age < 0 or age > 150:
print("入力値が不正です")
elif age <= 12:
print("子ども")
elif age <= 19:
print("ティーン")
elif age <= 64:
print("大人")
else:
print("シニア")
Python🪜 ステップ解説
- 入力を
int()で整数に変換。 if age < 0 or age > 150:→ 不正値チェック。elifの順に範囲を狭めていく。- 最後の
elseは「それ以外=65歳以上」。
✅ Q2:成績ランク判定
問題
0〜100の点数を入力して、
- 90以上 → A
- 80〜89 → B
- 70〜79 → C
- 60〜69 → D
- 60未満 → F
と表示するプログラム。
💡 解答例
score = int(input("点数を入力: "))
if score < 0 or score > 100:
print("無効な点数です")
elif score >= 90:
print("評価: A")
elif score >= 80:
print("評価: B")
elif score >= 70:
print("評価: C")
elif score >= 60:
print("評価: D")
else:
print("評価: F")
Python🪜 ステップ解説
- 不正値チェックを最初に配置(重要)。
- 「大きい順」に
elifを並べるとロジックが自然。 - 最後に60未満を
elseでまとめる。
✅ Q3:BMI診断アプリ
問題
身長(cm)と体重(kg)を入力し、BMIを計算して
- 18.5未満 → 「低体重」
- 18.5〜24.9 → 「普通体重」
- 25〜29.9 → 「肥満(1度)」
- 30以上 → 「肥満(2度以上)」
💡 解答例
height = float(input("身長(cm): "))
weight = float(input("体重(kg): "))
bmi = weight / ((height / 100) ** 2)
if bmi < 18.5:
print("低体重")
elif bmi < 25:
print("普通体重")
elif bmi < 30:
print("肥満(1度)")
else:
print("肥満(2度以上)")
Python🪜 ステップ解説
- BMI式:体重 ÷ (身長(m)²)
- 身長(cm) →
/100でmに変換。 - 境界値ごとに
elifで段階分類。 elif bmi < 25:のように「上限条件」で書くときれい。
✅ Q4:簡易ログインチェック
問題
ユーザー名とパスワードを入力し、
- ユーザー名が
"admin"かつ パスワードが"1234"→ 「ログイン成功」 - それ以外 → 「認証失敗」
💡 解答例
user = input("ユーザー名: ")
pwd = input("パスワード: ")
if user == "admin" and pwd == "1234":
print("ログイン成功")
else:
print("認証失敗")
Python🪜 ステップ解説
andは両方が正しいときのみTrue。- 条件を複数組み合わせるときは括弧を使うと読みやすい。
- セキュリティ上は実際にはハッシュを使うが、練習用ではOK。
✅ Q5:時刻メッセージ
問題
現在時刻(0〜23)を入力して、
- 5〜10 → 「おはよう」
- 11〜17 → 「こんにちは」
- 18〜22 → 「こんばんは」
- 23,0〜4 → 「おやすみ」
💡 解答例
hour = int(input("今の時刻(0〜23): "))
if 5 <= hour <= 10:
print("おはよう")
elif 11 <= hour <= 17:
print("こんにちは")
elif 18 <= hour <= 22:
print("こんばんは")
else:
print("おやすみ")
Python🪜 ステップ解説
- 時間帯の「範囲指定」は
a <= x <= bで簡潔に。 - 最後の
elseに 23, 0〜4 が自動的に含まれる。
✅ Q6:買い物割引アプリ
問題
購入金額を入力して、
- 10000円以上かつ会員 → 20%OFF
- 10000円以上のみ → 10%OFF
- 会員のみ → 5%OFF
- それ以外 → 割引なし
💡 解答例
price = int(input("購入金額: "))
member = input("会員ですか?(yes/no): ")
if price >= 10000 and member == "yes":
print("20%割引です!")
elif price >= 10000:
print("10%割引です!")
elif member == "yes":
print("5%割引です!")
else:
print("割引はありません。")
Python🪜 ステップ解説
- 条件を 「強い条件から順に」 書くのがコツ。
andとorの組み合わせで条件を整理。- 最後に「該当なし」は
else。
✅ Q7:カレンダー曜日判定
問題
曜日を "月"〜"日" の文字で入力し、
"土"または"日"→ 「休日です」- それ以外 → 「平日です」
💡 解答例
day = input("曜日を入力(月〜日): ")
if day == "土" or day == "日":
print("休日です")
else:
print("平日です")
Python🪜 ステップ解説
orで「どちらか1つでも当てはまる」。- 実際のカレンダー処理では
datetimeモジュールを使うが、ここでは条件判定の練習。
✅ Q8:数値範囲チェック
問題
ユーザーが入力した数値が
10〜50の範囲内なら「OK」、
それ以外は「範囲外です」と表示。
💡 解答例
n = int(input("数値を入力: "))
if 10 <= n <= 50:
print("OK")
else:
print("範囲外です")
Python🪜 ステップ解説
10 <= n <= 50の形は「間に挟まれているか」を表す。- シンプルでもよく使う構文なのでマスター必須。
✅ Q9:複数入力で合格判定
問題
国語・数学・英語の3教科の点数を入力し、
- 平均が70以上 かつ どの教科も50以上 → 「合格」
- どれかが50未満 → 「不合格」
💡 解答例
jpn = int(input("国語: "))
math = int(input("数学: "))
eng = int(input("英語: "))
avg = (jpn + math + eng) / 3
if avg >= 70 and jpn >= 50 and math >= 50 and eng >= 50:
print("合格")
else:
print("不合格")
Python🪜 ステップ解説
- 平均を
(合計 / 3)で計算。 - 「全て50以上」→
andでつなぐ。 ifに複数条件を並べるときは括弧を使うと見やすい。
✅ Q10:交通信号アプリ
問題
信号の色を "赤", "黄", "青" のどれかで入力。
"赤"→ 「止まれ」"黄"→ 「注意」"青"→ 「進め」- それ以外 → 「無効な入力です」
💡 解答例
color = input("信号の色を入力(赤/黄/青): ")
if color == "赤":
print("止まれ")
elif color == "黄":
print("注意")
elif color == "青":
print("進め")
else:
print("無効な入力です")
Python🪜 ステップ解説
- 各条件は文字列比較で分岐。
- 実務ではこのようなマッピングを辞書で書くことも多いが、
if / elifの練習として明示的に書いている。
🧠 ここまでで学べること
- ユーザー入力の処理と型変換(
int,float,str) and/or/ 比較演算の組み合わせ- 現実的な条件分岐の構築パターン
- データチェック(不正値・範囲外判定)
