ここでは、「if文(条件分岐)」をテーマにした練習問題50問を、
✅ 基礎 → 中級 → 応用 の3段階で構成し、
各問題に 解答+解説 をつけます。
初心者が順番に進めることで、自然に if の考え方・使い方・注意点が身につく構成です。
【基礎編】(Q1〜Q20)
まずは「if文の書き方」と「比較演算」に慣れる練習です。
Q1
変数 x = 5 のとき、x が 3 より大きければ "OK" と表示するプログラムを書きなさい。
解答例
x = 5
if x > 3:
print("OK")
Python解説if 条件: の形で、True のときだけブロックが実行されます。
Q2
x = 10 のとき、x が 10 なら「ちょうど10です」と表示する。
解答
x = 10
if x == 10:
print("ちょうど10です")
Python解説== は「等しい」比較。= ではなく ==。
Q3
num = 0 が 0 のとき「ゼロです」を表示。
解答
num = 0
if num == 0:
print("ゼロです")
PythonQ4
a = 7 のとき、a が 5 より大きく、10 未満のとき "範囲内" と表示。
解答
a = 7
if a > 5 and a < 10:
print("範囲内")
Python解説and で2つの条件をつなぐと、両方Trueなら実行されます。
Q5
x = -3 のとき、x が 0 未満なら「負の数です」を表示。
解答
x = -3
if x < 0:
print("負の数です")
PythonQ6
ユーザーに年齢を入力させ、20歳以上なら「成人です」と出力。
解答
age = int(input("年齢を入力してください: "))
if age >= 20:
print("成人です")
PythonQ7
変数 score = 80。60点以上なら「合格」、それ以外は「不合格」。
解答
score = 80
if score >= 60:
print("合格")
else:
print("不合格")
PythonQ8
x = 10。もし x == 10 なら "A", そうでなければ "B" と表示。
解答
x = 10
if x == 10:
print("A")
else:
print("B")
PythonQ9
num = -5。もし正の数なら「正」、そうでなければ「負」。
解答
num = -5
if num > 0:
print("正")
else:
print("負")
PythonQ10
n = 0。もし 0 なら "Zero"、正なら "Positive"、負なら "Negative"。
解答
n = 0
if n > 0:
print("Positive")
elif n == 0:
print("Zero")
else:
print("Negative")
Python解説elif は複数条件に対応する書き方。
Q11
a = 3, b = 5。もし a < b なら「a<b」、そうでなければ「a>=b」。
解答
a, b = 3, 5
if a < b:
print("a<b")
else:
print("a>=b")
PythonQ12
ユーザーが入力した数が偶数なら「偶数」、奇数なら「奇数」と出す。
解答
n = int(input("数を入力: "))
if n % 2 == 0:
print("偶数")
else:
print("奇数")
PythonQ13
x = 100 のとき、50以上かつ150以下なら「範囲内」。
解答
x = 100
if 50 <= x <= 150:
print("範囲内")
PythonQ14
password = "python"。もし "python" なら「ログイン成功」。
解答
password = "python"
if password == "python":
print("ログイン成功")
PythonQ15
x = 0。もし x が偽(False)扱いなら "False!" と表示。
解答
x = 0
if not x:
print("False!")
Python解説
0 は「偽扱い」になる(falsy)。
Q16
word = ""(空文字)。もし空なら「空文字です」。
解答
word = ""
if not word:
print("空文字です")
PythonQ17
x = 10, y = 2。もし x を y で割った結果が 5 なら "OK"。
解答
x, y = 10, 2
if x / y == 5:
print("OK")
PythonQ18
flag = True。もし True なら "実行します"。
解答
flag = True
if flag:
print("実行します")
PythonQ19
x = 10。もし 10 で割った余りが 0 なら「割り切れる」。
解答
x = 10
if x % 10 == 0:
print("割り切れる")
PythonQ20
x = 5。もし x != 10 なら "10ではない"。
解答
x = 5
if x != 10:
print("10ではない")
Python【中級編】(Q21〜Q35)
複数条件や入れ子構造、文字列・リストとの組み合わせを練習します。
Q21
入力した文字が "yes" なら「進みます」、 "no" なら「止まります」。
解答
ans = input("yes/no?: ")
if ans == "yes":
print("進みます")
elif ans == "no":
print("止まります")
PythonQ22
temp = 35。30℃以上なら「暑い!」、15℃未満なら「寒い!」、それ以外は「ちょうどいい」。
解答
temp = 35
if temp >= 30:
print("暑い!")
elif temp < 15:
print("寒い!")
else:
print("ちょうどいい")
PythonQ23
num = int(input("数: "))。もし 3 の倍数なら「Fizz」。
解答
num = int(input("数: "))
if num % 3 == 0:
print("Fizz")
PythonQ24
a = 10, b = 5。もし a > b かつ a - b > 3 なら「条件クリア」。
解答
a, b = 10, 5
if a > b and a - b > 3:
print("条件クリア")
PythonQ25
text = "python"。もし "py" を含んでいれば "OK"。
解答
text = "python"
if "py" in text:
print("OK")
PythonQ26
リスト colors = ["red", "blue"] に "green" が含まれていなければ "追加必要"。
解答
colors = ["red", "blue"]
if "green" not in colors:
print("追加必要")
PythonQ27
入力が "y" または "Y" なら「YES」と出す。
解答
c = input("y/n?: ")
if c == "y" or c == "Y":
print("YES")
PythonQ28
n = 8。もし偶数なら "偶数", 奇数なら "奇数"、1行で書け。
解答
n = 8
print("偶数" if n % 2 == 0 else "奇数")
PythonQ29
x = 5。もし 1〜10 の範囲外なら「範囲外」と表示。
解答
x = 5
if not (1 <= x <= 10):
print("範囲外")
PythonQ30
a = 5, b = 2。a が b の倍数なら "OK"。
解答
a, b = 5, 2
if a % b == 0:
print("OK")
PythonQ31
name = input("名前: ")。空白なら「入力してください」。
解答
name = input("名前: ")
if not name:
print("入力してください")
PythonQ32
age = 15。もし 13〜19 才なら「ティーン」。
解答
age = 15
if 13 <= age <= 19:
print("ティーン")
PythonQ33
x = 7。x が 3 の倍数または 5 の倍数なら "OK"。
解答
x = 7
if x % 3 == 0 or x % 5 == 0:
print("OK")
PythonQ34
score = 0。score が falsy なら「スコアなし」。
解答
score = 0
if not score:
print("スコアなし")
PythonQ35
nums = [1, 2, 3]。要素が1つ以上なら "OK"。
解答
nums = [1, 2, 3]
if nums:
print("OK")
Python【応用編】(Q36〜Q50)
ネストや複雑な条件、実務的な例を扱います。
Q36
ユーザー入力の数が偶数なら「偶数」、奇数なら「奇数」。0の場合は「ゼロ」。
解答
n = int(input("数: "))
if n == 0:
print("ゼロ")
elif n % 2 == 0:
print("偶数")
else:
print("奇数")
PythonQ37
year = 2024。うるう年(4で割れて100で割れない、または400で割れる)なら「うるう年」。
解答
year = 2024
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("うるう年")
PythonQ38
point = 120。
100点以上なら「S」、80以上「A」、60以上「B」、それ以外「C」。
解答
point = 120
if point >= 100:
print("S")
elif point >= 80:
print("A")
elif point >= 60:
print("B")
else:
print("C")
PythonQ39
文字列が "@gmail.com" を含むなら「Gmailアドレス」。
解答
email = "abc@gmail.com"
if "@gmail.com" in email:
print("Gmailアドレス")
PythonQ40
a = 3, b = 0。もし b が 0 なら「割り算できません」。
解答
a, b = 3, 0
if b == 0:
print("割り算できません")
else:
print(a / b)
PythonQ41
num = 15。もし3と5両方の倍数なら「FizzBuzz」。
解答
num = 15
if num % 3 == 0 and num % 5 == 0:
print("FizzBuzz")
PythonQ42
age = 22, has_ticket = False。18歳以上かつチケットありなら「入場OK」。
解答
age = 22
has_ticket = False
if age >= 18 and has_ticket:
print("入場OK")
else:
print("入場NG")
PythonQ43
n = 0。if文を使わずに「正」か「負」か「ゼロ」を判定(ヒント:三項演算子ネスト)。
解答
n = 0
print("正" if n > 0 else "負" if n < 0 else "ゼロ")
PythonQ44
入力した文字列が "python" か "Python" のどちらかなら「一致」。
解答
s = input("文字: ")
if s == "python" or s == "Python":
print("一致")
PythonQ45
price = 1200。1000円を超えたら「高い」、そうでなければ「安い」。
解答
price = 1200
if price > 1000:
print("高い")
else:
print("安い")
PythonQ46
x = 10。10の倍数かつ20未満なら「条件OK」。
解答
x = 10
if x % 10 == 0 and x < 20:
print("条件OK")
PythonQ47
msg = "Hello"。先頭が "H" なら「英語の挨拶」。
解答
msg = "Hello"
if msg.startswith("H"):
print("英語の挨拶")
PythonQ48
num = 9。平方根が整数なら「平方数」。
解答
import math
num = 9
if math.sqrt(num).is_integer():
print("平方数")
PythonQ49
x = 5。奇数なら「Odd」、偶数なら「Even」と出力する関数を定義。
解答
def check(x):
if x % 2 == 0:
print("Even")
else:
print("Odd")
check(5)
PythonQ50
a, b, c = 3, 4, 5。三角形の辺として成立するなら「三角形」。
解答
a, b, c = 3, 4, 5
if a + b > c and a + c > b and b + c > a:
print("三角形")
Python✅ まとめ
| レベル | 内容 |
|---|---|
| 基礎 | if文の書き方・比較演算・else |
| 中級 | elif, 論理演算, 文字列/リスト条件 |
| 応用 | 実務的条件・関数内if・ネスト構造 |
