if / elif / else & 複雑な条件 演習セット(基礎編)
では、まずは Q1〜Q10(基礎レベル) から、
それぞれに 「解答例」+「ステップごとの解説」 を紹介します。
✅ Q1
問題
変数 x = 10 のとき、
- 5より小さい → 「小さい」
- 5以上10未満 → 「普通」
- 10以上 → 「大きい」
と表示するプログラムを作りましょう。
💡 解答例
x = 10
if x < 5:
print("小さい")
elif x < 10:
print("普通")
else:
print("大きい")
Python🪜 ステップ解説
if文で最初の条件x < 5を確認
→ False(10は5より大きい)- 次の
elifx < 10を確認
→ False(10は10未満ではない) - どちらも当てはまらないので
elseに進む
→"大きい"と表示される。
✅ Q2
問題
年齢を入力し、
- 13未満 → 「子ども」
- 13以上20未満 → 「ティーン」
- 20以上 → 「大人」
と表示。
💡 解答例
age = int(input("年齢を入力してください: "))
if age < 13:
print("子ども")
elif age < 20:
print("ティーン")
else:
print("大人")
Python🪜 ステップ解説
- 入力は
input()→ 文字列なのでint()で整数に変換。 if age < 13:→ 該当すれば「子ども」。elif age < 20:→ 13〜19なら「ティーン」。- どちらも当てはまらなければ
else→ 「大人」。
✅ Q3
問題
点数 score に応じて
- 80以上 → 「合格」
- 50以上80未満 → 「追試」
- 50未満 → 「不合格」
💡 解答例
score = int(input("点数を入力: "))
if score >= 80:
print("合格")
elif score >= 50:
print("追試")
else:
print("不合格")
Python🪜 ステップ解説
score >= 80→ Trueなら「合格」。- そうでなければ
elif score >= 50をチェック。 - 両方Falseなら
else→ 「不合格」。 - 条件は「大きい順」に書くのが読みやすい。
✅ Q4
問題
文字列が "yes" または "y" なら「実行します」、それ以外は「キャンセルしました」。
💡 解答例
answer = input("実行しますか?(yes/y): ")
if answer == "yes" or answer == "y":
print("実行します")
else:
print("キャンセルしました")
Python🪜 ステップ解説
- 入力を受け取る →
answer if条件で2つの可能性を確認:answer == "yes" or answer == "y"orは「どちらかTrueならTrue」。- それ以外の入力なら
else。
✅ Q5
問題
温度 temp を入力して、
- 0以下 → 「凍結注意」
- 0〜25 → 「快適」
- 25超 → 「暑い」
💡 解答例
temp = float(input("気温を入力してください: "))
if temp <= 0:
print("凍結注意")
elif temp <= 25:
print("快適")
else:
print("暑い")
Python🪜 ステップ解説
float()で小数対応。temp <= 0→ 「凍結注意」。temp <= 25→ 0〜25 の範囲を担当。- それ以外(25超)は
else。
✅ Q6
問題
整数 num を入力し、
- 正の偶数 → 「正の偶数」
- 正の奇数 → 「正の奇数」
- 負の数 → 「負の数」
- 0 → 「ゼロ」
💡 解答例
num = int(input("整数を入力: "))
if num > 0 and num % 2 == 0:
print("正の偶数")
elif num > 0 and num % 2 != 0:
print("正の奇数")
elif num < 0:
print("負の数")
else:
print("ゼロ")
Python🪜 ステップ解説
andを使って「両方満たす」条件を組み合わせ。- 正の数+偶数 →
num > 0 and num % 2 == 0。 - 同様に奇数は
num % 2 != 0。 - 負数なら
num < 0、それ以外(0)はelse。
✅ Q7
問題
数学と英語の点数を入力して、
- 両方80以上 → 「優秀」
- どちらか80以上 → 「もう少し」
- 両方80未満 → 「努力が必要」
💡 解答例
math = int(input("数学の点数: "))
english = int(input("英語の点数: "))
if math >= 80 and english >= 80:
print("優秀")
elif math >= 80 or english >= 80:
print("もう少し")
else:
print("努力が必要")
Python🪜 ステップ解説
andは「両方とも真」。orは「どちらかが真」。- 最後の
elseは「どちらも80未満」。
✅ Q8
問題
現在の時刻(0〜23)を入力して、
- 6〜11 → 「おはよう」
- 12〜17 → 「こんにちは」
- 18〜23 または 0〜5 → 「こんばんは」
💡 解答例
hour = int(input("今の時刻(0〜23): "))
if 6 <= hour <= 11:
print("おはよう")
elif 12 <= hour <= 17:
print("こんにちは")
else:
print("こんばんは")
Python🪜 ステップ解説
- 範囲チェックは
6 <= hour <= 11のように書ける。 - 最後は「それ以外」→ 夜の時間帯をまとめて
else。
✅ Q9
問題
ユーザーに "yes" または "no" を入力させ、yes なら "開始します"、no なら "終了します"、
それ以外なら "入力が無効です"。
💡 解答例
ans = input("yes または no を入力: ")
if ans == "yes":
print("開始します")
elif ans == "no":
print("終了します")
else:
print("入力が無効です")
Python🪜 ステップ解説
elifを使うとif→elseの中間条件が書ける。"yes"か"no"以外はelseに流れる。
✅ Q10
問題n が3の倍数 → 「Fizz」
5の倍数 → 「Buzz」
両方 → 「FizzBuzz」
どちらでもない → 数値そのまま。
💡 解答例
n = int(input("整数を入力: "))
if n % 3 == 0 and n % 5 == 0:
print("FizzBuzz")
elif n % 3 == 0:
print("Fizz")
elif n % 5 == 0:
print("Buzz")
else:
print(n)
Python🪜 ステップ解説
- 最初に「両方の倍数」を先に書く(最も限定的な条件)。
- 次に「3の倍数」「5の倍数」。
- 最後に「どれにも当てはまらない」→
else。
