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

Python
スポンサーリンク

ここでは 「if」「elif」「else」と複雑な条件の組み合わせ に慣れるための、
初心者〜中級者向けの練習問題30問を用意しました。

基礎レベル(1〜10)

シンプルな分岐と elif の基本に慣れる練習。


Q1

変数 x = 10 のとき、

  • 5より小さい → 「小さい」
  • 5以上10未満 → 「普通」
  • 10以上 → 「大きい」
    と表示するプログラムを作りましょう。

Q2

変数 age に年齢を入力し、

  • 13未満 → 「子ども」
  • 13以上20未満 → 「ティーン」
  • 20以上 → 「大人」
    と表示。

Q3

変数 score に点数を入力して、

  • 80以上 → 「合格」
  • 50以上80未満 → 「追試」
  • 50未満 → 「不合格」
    と出力。

Q4

入力した文字列が "yes" または "y" なら「実行します」、
それ以外は「キャンセルしました」と表示。


Q5

温度 temp を入力して、

  • 0以下 → 「凍結注意」
  • 0〜25 → 「快適」
  • 25超 → 「暑い」
    を出力。

Q6

変数 num に整数を入力し、

  • 正の偶数 → 「正の偶数」
  • 正の奇数 → 「正の奇数」
  • 負の数 → 「負の数」
  • 0 → 「ゼロ」
    と判定。

Q7

テストの点数 math, english を入力して、
両方80以上なら「優秀」
どちらかが80以上なら「もう少し」
両方とも80未満なら「努力が必要」。


Q8

hour に現在の時刻(0〜23)を入力して、

  • 6〜11 → 「おはよう」
  • 12〜17 → 「こんにちは」
  • 18〜23 または 0〜5 → 「こんばんは」。

Q9

ユーザーに "yes" または "no" を入力させ、
yes なら "開始します"no なら "終了します"
それ以外なら "入力が無効です" と出力。


Q10

変数 n が3の倍数であれば「Fizz」、5の倍数なら「Buzz」、
両方なら「FizzBuzz」、どちらでもなければ数値をそのまま出力。


中級レベル(11〜20)

複数条件や入れ子の分岐を練習します。


Q11

数値 x を入力して、

  • 負の数 → 「負数」
  • 0 → 「ゼロ」
  • 100以上 → 「大きい数」
  • それ以外 → 「普通の数」。

Q12

身長と体重を入力して、
BMI = 体重 / (身長(m)²) を計算。
BMIが

  • 18.5未満 → 「やせ」
  • 18.5〜25未満 → 「普通」
  • 25以上 → 「太りぎみ」。

Q13

文字列 color"red", "blue", "green" のいずれかなら色を表示、
それ以外なら「対象外」。


Q14

2つの数 a, b を入力して、

  • aもbも正 → 「両方正」
  • 片方だけ正 → 「どちらか正」
  • 両方負またはゼロ → 「どちらも正ではない」。

Q15

month(1〜12)を入力し、

  • 3〜5 → 「春」
  • 6〜8 → 「夏」
  • 9〜11 → 「秋」
  • 12,1,2 → 「冬」。

Q16

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


Q17

year がうるう年かどうか判定:

  • 4で割り切れる年はうるう年
  • ただし100で割り切れる年は除く
  • ただし400で割り切れる年はうるう年。

Q18

入力された点数が

  • 90以上 → A
  • 80〜89 → B
  • 70〜79 → C
  • 60〜69 → D
  • 60未満 → F。

Q19

ユーザー名とパスワードを入力させ、
正しければ「ログイン成功」、間違っていれば「エラー」と出力。


Q20

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


応用レベル(21〜30)

複雑な条件の組み合わせ、ネスト、論理演算子の活用。


Q21

3科目の平均が80以上、かつどの科目も60以上 → 「合格」
平均が80未満または1科目でも60未満 → 「不合格」。


Q22

3つの数 a,b,c のうち最大の値を表示。


Q23

整数 n

  • 2の倍数かつ3の倍数 → 「2と3の倍数」
  • 2の倍数のみ → 「2の倍数」
  • 3の倍数のみ → 「3の倍数」
  • どちらでもない → 「その他」。

Q24

文字列が

  • 空文字 → 「未入力」
  • 空白のみ → 「空白」
  • それ以外 → 「OK」。

Q25

agehas_ticket(True/False)で映画の入場判定:
18歳以上かつチケットあり → 「入場OK」
18歳未満 → 「年齢制限」
チケットなし → 「チケットが必要」。


Q26

変数 x, y を入力し、
x > 0 かつ y > 0 → 「第1象限」
x < 0 かつ y > 0 → 「第2象限」
x < 0 かつ y < 0 → 「第3象限」
x > 0 かつ y < 0 → 「第4象限」
その他(どちらか0)→ 「軸上」。


Q27

ユーザーの入力文字列が数字のみなら「数値です」、
英字のみなら「英字です」、
英数字混在なら「英数字です」、
その他なら「特殊文字を含みます」。


Q28

整数 x が0〜100の範囲外なら「範囲外」、
範囲内なら「OK」と出力。


Q29

day"土" または "日" → 「休日」
それ以外で "金" → 「もうすぐ休日」
それ以外 → 「平日」。


Q30

入力した年齢が

  • 0未満 → 「入力エラー」
  • 0〜2 → 「乳児」
  • 3〜12 → 「子ども」
  • 13〜19 → 「ティーン」
  • 20〜64 → 「大人」
  • 65以上 → 「シニア」。

発展ヒント

  • and / or / not の組み合わせ練習が重要
  • 条件式が複雑になるときは「括弧で整理」
  • 一見長くても「1条件1目的」で分かりやすく書くのがコツ
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました