if / elif / else 中級演習
では続けて、
if / elif / else(中級編:複数条件・ネストあり)Q11〜Q20
を、すべて 「解答例+ステップごとの解説」 を紹介します。
✅ Q11
問題
数値 x を入力して、
- 負の数 → 「負数」
- 0 → 「ゼロ」
- 100以上 → 「大きい数」
- それ以外 → 「普通の数」
💡 解答例
x = int(input("数値を入力: "))
if x < 0:
print("負数")
elif x == 0:
print("ゼロ")
elif x >= 100:
print("大きい数")
else:
print("普通の数")
Python🪜 ステップ解説
if x < 0:→ 真なら「負数」。- 次に
elif x == 0:→ ぴったりゼロなら「ゼロ」。 - それ以外で100以上 → 「大きい数」。
- 最後に
else→ 上記以外すべて「普通の数」。
✅ Q12
問題
身長と体重を入力してBMIを計算。
BMI = 体重 / (身長(m)²)
- 18.5未満 → 「やせ」
- 18.5〜25未満 → 「普通」
- 25以上 → 「太りぎみ」
💡 解答例
height = float(input("身長(cm): ")) / 100
weight = float(input("体重(kg): "))
bmi = weight / (height ** 2)
if bmi < 18.5:
print("やせ")
elif bmi < 25:
print("普通")
else:
print("太りぎみ")
Python🪜 ステップ解説
- 身長をcm→mに変換。
- BMIを計算式で求める。
- 18.5未満 → 「やせ」。
- 25未満 → 「普通」。
- それ以上 → 「太りぎみ」。
✅ Q13
問題
文字列 color が "red", "blue", "green" のいずれかなら色を表示、
それ以外なら「対象外」。
💡 解答例
color = input("色を入力(red/blue/green): ")
if color == "red":
print("赤です")
elif color == "blue":
print("青です")
elif color == "green":
print("緑です")
else:
print("対象外")
Python🪜 ステップ解説
if/elifで複数の候補を順番に比較。- 最後の
elseでその他をまとめる。 elifを並べると「多分岐」が簡潔に書ける。
✅ Q14
問題
2つの数 a, b を入力して、
- aもbも正 → 「両方正」
- 片方だけ正 → 「どちらか正」
- 両方負またはゼロ → 「どちらも正ではない」
💡 解答例
a = int(input("a: "))
b = int(input("b: "))
if a > 0 and b > 0:
print("両方正")
elif a > 0 or b > 0:
print("どちらか正")
else:
print("どちらも正ではない")
Python🪜 ステップ解説
- 最初に「両方正」=
and。 - その次に「どちらか正」=
or。 - 最後に「それ以外」= どちらも0以下。
✅ Q15
問題month(1〜12)を入力し、
- 3〜5 → 「春」
- 6〜8 → 「夏」
- 9〜11 → 「秋」
- 12,1,2 → 「冬」
💡 解答例
month = int(input("月を入力(1〜12): "))
if 3 <= month <= 5:
print("春")
elif 6 <= month <= 8:
print("夏")
elif 9 <= month <= 11:
print("秋")
else:
print("冬")
Python🪜 ステップ解説
- 範囲条件
3 <= month <= 5で「春」。 - 順に「夏」「秋」。
elseは12,1,2の残り範囲。
→ 条件を順序良く並べるのがポイント。
✅ Q16
問題
整数 n が偶数でかつ3の倍数なら「偶数かつ3の倍数」、
それ以外なら「その他」。
💡 解答例
n = int(input("整数を入力: "))
if n % 2 == 0 and n % 3 == 0:
print("偶数かつ3の倍数")
else:
print("その他")
Python🪜 ステップ解説
- 「偶数」条件:
n % 2 == 0。 - 「3の倍数」条件:
n % 3 == 0。 - 両方同時 →
and。 - 満たさなければ
else。
✅ Q17
問題
西暦 year がうるう年かどうか判定:
- 4で割り切れる年はうるう年
- ただし100で割り切れる年は除く
- ただし400で割り切れる年はうるう年
💡 解答例
year = int(input("西暦を入力: "))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("うるう年です")
else:
print("平年です")
Python🪜 ステップ解説
- 基本:4で割り切れる年 → うるう年。
- ただし100で割り切れる場合は除外。
- さらに400で割り切れる場合は再びうるう年。
- 複数条件を
()で明確に区切る。
✅ Q18
問題
入力された点数に応じて評価。
- 90以上 → A
- 80〜89 → B
- 70〜79 → C
- 60〜69 → D
- 60未満 → F
💡 解答例
score = int(input("点数を入力: "))
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"評価: {grade}")
Python🪜 ステップ解説
- 条件を「大きい方から順に」並べるとシンプル。
elifは順次チェックされるため、重複なし。- 最後は
elseで残り(60未満)をカバー。
✅ Q19
問題
ユーザー名とパスワードを入力し、
どちらも正しければ「ログイン成功」、
違っていれば「エラー」。
💡 解答例
username = input("ユーザー名: ")
password = input("パスワード: ")
if username == "admin" and password == "1234":
print("ログイン成功")
else:
print("エラー: ユーザー名またはパスワードが違います")
Python🪜 ステップ解説
andで2つの条件を組み合わせる。- どちらか一方でも違えば
False。 - 一致した場合のみ「ログイン成功」。
✅ Q20
問題
文字列 s に "@" が含まれていれば「メール形式」、
含まれていなければ「不正な形式」。
💡 解答例
s = input("メールアドレスを入力: ")
if "@" in s:
print("メール形式です")
else:
print("不正な形式です")
Python🪜 ステップ解説
in演算子で「文字が含まれているか」を確認。"@" in s→ Trueなら「メール形式」。- 含まれない場合は
else側へ。
