Python | 「ユーザーの入力(input)」と if / else を組み合わせた小さな実践アプリ

Python
スポンサーリンク

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

🪜 ステップ解説

  1. 入力を int() で整数に変換。
  2. if age < 0 or age > 150: → 不正値チェック。
  3. elif の順に範囲を狭めていく。
  4. 最後の 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

🪜 ステップ解説

  1. 不正値チェックを最初に配置(重要)。
  2. 「大きい順」に elif を並べるとロジックが自然。
  3. 最後に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

🪜 ステップ解説

  1. BMI式:体重 ÷ (身長(m)²)
  2. 身長(cm) → /100 でmに変換。
  3. 境界値ごとに elif で段階分類。
  4. elif bmi < 25: のように「上限条件」で書くときれい。

✅ Q4:簡易ログインチェック

問題
ユーザー名とパスワードを入力し、

  • ユーザー名が "admin" かつ パスワードが "1234" → 「ログイン成功」
  • それ以外 → 「認証失敗」

💡 解答例

user = input("ユーザー名: ")
pwd = input("パスワード: ")

if user == "admin" and pwd == "1234":
    print("ログイン成功")
else:
    print("認証失敗")
Python

🪜 ステップ解説

  1. and は両方が正しいときのみTrue。
  2. 条件を複数組み合わせるときは括弧を使うと読みやすい。
  3. セキュリティ上は実際にはハッシュを使うが、練習用では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

🪜 ステップ解説

  1. 時間帯の「範囲指定」は a <= x <= b で簡潔に。
  2. 最後の 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

🪜 ステップ解説

  1. 条件を 「強い条件から順に」 書くのがコツ。
  2. andor の組み合わせで条件を整理。
  3. 最後に「該当なし」は else

✅ Q7:カレンダー曜日判定

問題
曜日を "月"〜"日" の文字で入力し、

  • "土" または "日" → 「休日です」
  • それ以外 → 「平日です」

💡 解答例

day = input("曜日を入力(月〜日): ")

if day == "土" or day == "日":
    print("休日です")
else:
    print("平日です")
Python

🪜 ステップ解説

  1. or で「どちらか1つでも当てはまる」。
  2. 実際のカレンダー処理では datetime モジュールを使うが、ここでは条件判定の練習。

✅ Q8:数値範囲チェック

問題
ユーザーが入力した数値が
10〜50の範囲内なら「OK」、
それ以外は「範囲外です」と表示。


💡 解答例

n = int(input("数値を入力: "))

if 10 <= n <= 50:
    print("OK")
else:
    print("範囲外です")
Python

🪜 ステップ解説

  1. 10 <= n <= 50 の形は「間に挟まれているか」を表す。
  2. シンプルでもよく使う構文なのでマスター必須。

✅ 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

🪜 ステップ解説

  1. 平均を (合計 / 3) で計算。
  2. 「全て50以上」→ and でつなぐ。
  3. if に複数条件を並べるときは括弧を使うと見やすい。

✅ Q10:交通信号アプリ

問題
信号の色を "赤", "黄", "青" のどれかで入力。

  • "赤" → 「止まれ」
  • "黄" → 「注意」
  • "青" → 「進め」
  • それ以外 → 「無効な入力です」

💡 解答例

color = input("信号の色を入力(赤/黄/青): ")

if color == "赤":
    print("止まれ")
elif color == "黄":
    print("注意")
elif color == "青":
    print("進め")
else:
    print("無効な入力です")
Python

🪜 ステップ解説

  1. 各条件は文字列比較で分岐。
  2. 実務ではこのようなマッピングを辞書で書くことも多いが、
    if / elif の練習として明示的に書いている。

🧠 ここまでで学べること

  • ユーザー入力の処理と型変換(int, float, str
  • and / or / 比較演算の組み合わせ
  • 現実的な条件分岐の構築パターン
  • データチェック(不正値・範囲外判定)
タイトルとURLをコピーしました