Python | if / elif / else & 複雑な条件 演習セット

Python
スポンサーリンク

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

🪜 ステップ解説

  1. if x < 0: → 真なら「負数」。
  2. 次に elif x == 0: → ぴったりゼロなら「ゼロ」。
  3. それ以外で100以上 → 「大きい数」。
  4. 最後に 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

🪜 ステップ解説

  1. 身長をcm→mに変換。
  2. BMIを計算式で求める。
  3. 18.5未満 → 「やせ」。
  4. 25未満 → 「普通」。
  5. それ以上 → 「太りぎみ」。

✅ 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

🪜 ステップ解説

  1. if / elif で複数の候補を順番に比較。
  2. 最後の else でその他をまとめる。
  3. 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

🪜 ステップ解説

  1. 最初に「両方正」= and
  2. その次に「どちらか正」= or
  3. 最後に「それ以外」= どちらも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

🪜 ステップ解説

  1. 範囲条件 3 <= month <= 5 で「春」。
  2. 順に「夏」「秋」。
  3. else は12,1,2の残り範囲。
    → 条件を順序良く並べるのがポイント。

✅ Q16

問題
整数 n が偶数でかつ3の倍数なら「偶数かつ3の倍数」、
それ以外なら「その他」。


💡 解答例

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

if n % 2 == 0 and n % 3 == 0:
    print("偶数かつ3の倍数")
else:
    print("その他")
Python

🪜 ステップ解説

  1. 「偶数」条件:n % 2 == 0
  2. 「3の倍数」条件:n % 3 == 0
  3. 両方同時 → and
  4. 満たさなければ 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

🪜 ステップ解説

  1. 基本:4で割り切れる年 → うるう年。
  2. ただし100で割り切れる場合は除外。
  3. さらに400で割り切れる場合は再びうるう年。
  4. 複数条件を () で明確に区切る。

✅ 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

🪜 ステップ解説

  1. 条件を「大きい方から順に」並べるとシンプル。
  2. elif は順次チェックされるため、重複なし。
  3. 最後は else で残り(60未満)をカバー。

✅ Q19

問題
ユーザー名とパスワードを入力し、
どちらも正しければ「ログイン成功」、
違っていれば「エラー」。


💡 解答例

username = input("ユーザー名: ")
password = input("パスワード: ")

if username == "admin" and password == "1234":
    print("ログイン成功")
else:
    print("エラー: ユーザー名またはパスワードが違います")
Python

🪜 ステップ解説

  1. and で2つの条件を組み合わせる。
  2. どちらか一方でも違えば False
  3. 一致した場合のみ「ログイン成功」。

✅ Q20

問題
文字列 s"@" が含まれていれば「メール形式」、
含まれていなければ「不正な形式」。


💡 解答例

s = input("メールアドレスを入力: ")

if "@" in s:
    print("メール形式です")
else:
    print("不正な形式です")
Python

🪜 ステップ解説

  1. in 演算子で「文字が含まれているか」を確認。
  2. "@" in s → Trueなら「メール形式」。
  3. 含まれない場合は else 側へ。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました