では Python の if 文 をプログラミング初心者向けに分かりやすく、例題を交えて丁寧に解説します。実際に手を動かして試せるよう、コード例・よくあるミス・練習問題(解答付き)まで用意しました。
全体像 — if 文で何をするの?
if 文は「もし〜ならば(条件が真なら)」という分岐を作るためのものです。条件が True(真)のときだけ、その中の処理(ブロック)が実行されます。逆に False(偽)ならスキップされます。
書き方の基本:
if 条件式:
条件が True のときに実行する処理(インデント)
Python重要ポイント:末尾に :(コロン)、そしてインデント(通常スペース4つ)でブロックを表現します。
1) 基本の比較(==, !=, >, <, >=, <=)
== は「等しいか」、!= は「等しくないか」です。
例:
a = 10
if a == 10:
print("a は 10 です")
if a > 5:
print("a は 5 より大きいです")
if a != 0:
print("a は 0 ではありません")
Python出力:
a は 10 です
a は 5 より大きいです
a は 0 ではありません
注意:比較は ==(等しい)で、= は代入(a = 10)です。if a = 10: はエラーになります。
2) else と elif(複数の分岐)
else:if が False のときに実行するブロックelif:追加の条件(else if のようなもの)
例:
x = 7
if x > 10:
print("x は 10 より大きい")
elif x >= 5:
print("x は 5 以上で 10 以下")
else:
print("x は 5 未満")
Pythonこの場合 x は 7 なので x は 5 以上で 10 以下 が出ます。
ポイント:elif は上から順に評価され、最初に True になった分岐だけが実行されます。
3) 真偽値(bool)と「truthy / falsy」
Python では条件に True / False 以外の値をそのまま書くことがあります。
よく使う「偽(False)」と判定される値:0, 0.0, ''(空文字列), [](空リスト), {}(空辞書), None。
それ以外は「真(True)」扱いになります(truthy)。
例:
s = ""
if s:
print("文字がある")
else:
print("空文字だから偽扱い")
Python出力は 空文字だから偽扱い。
初心者向けのコツ:条件には基本的に比較式を書く(if x > 0: 等)。慣れてきたら if my_list: のような短い書き方を使うと便利です。
4) 論理演算子(and / or / not)
複数条件を組み合わせたいときに使います。
and:両方が True のとき Trueor:どちらかが True なら Truenot:真偽を反転
例:
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("入場できます")
if age < 18 or not has_ticket:
print("入場できません")
Python短絡評価(短絡):
andは左が False なら右を評価しない。orは左が True なら右を評価しない。
(副作用を伴う式を書くときに重要です)
5) ネスト(入れ子)された if
if の中にさらに if を入れることができます。読みやすさを意識して使いましょう。
x = 12
if x > 0:
if x % 2 == 0:
print("正の偶数")
else:
print("正の奇数")
else:
print("0 または負の数")
Pythonただし複雑になりすぎると読みにくいので、論理演算子や関数で整理することをおすすめします。
6) 三項演算子(簡潔に書く)
簡単な if-else は1行で書けます(可読性は場合による)。
x = 5
message = "even" if x % 2 == 0 else "odd"
print(message) # odd
Python7) よくあるミスと対処法
:を忘れる → SyntaxError(構文エラー)。必ずつける。- インデントがおかしい →
IndentationError。スペースとタブを混ぜない。 =と==を取り違える →SyntaxErrorまたは意図しない動作。- 浮動小数点の比較に注意(
0.1 + 0.2 == 0.3が False になることがある)。 - 複雑な条件を1行に詰め込みすぎると可読性が落ちる。必要なら関数に切り出す。
実践例(実行して理解する)
例1:ユーザー入力で偶数か判定
n = int(input("数値を入力してください: "))
if n % 2 == 0:
print("偶数です")
else:
print("奇数です")
Python例2:スコアに応じた評価(複数分岐)
score = 78
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print("評価:", grade) # 評価: C
Python例3:リストが空かどうかで処理を分ける(truthy を利用)
items = []
if items:
print("アイテムがあります")
else:
print("アイテムは空です")
Python練習問題(初心者向け・解答付き)
問題1(基本)x = 3 のとき、以下のコードは何を出力するか?
if x > 0:
print("positive")
if x < 5:
print("less than 5")
Python解答:
positive
less than 5
(両方 True のため2行出力される)
問題2(elif の理解)n = 10 のとき次のコードは何を出す?
n = 10
if n < 10:
print("small")
elif n == 10:
print("equal")
else:
print("big")
Python解答:equal
問題3(論理演算)age = 17, has_permission = True のとき次の if 文は実行されるか?
if age >= 18 or has_permission:
print("OK")
Python解答:実行される(has_permission が True なので or 全体が True)
問題4(truthy/falsy)name = "" のとき if name: ブロックは実行されるか?
解答:実行されない(空文字列は falsy)
問題5(応用)
ユーザーに点数を聞いて、60 点以上なら “合格”、それ以外は “不合格” を表示するコードを書け。
解答例:
score = int(input("点数を入力: "))
if score >= 60:
print("合格")
else:
print("不合格")
Pythonまとめ(初心者がまず覚えること)
if 条件:の末尾には必ず:。次行はインデント。- 比較は
==,!=,>,<,>=,<=。=は代入。 elifとelseで複数分岐が可能。上から順に評価される。and/or/notで条件を組み合わせる。- truthy / falsy を使った短い書き方があるが、まずは明示的な比較に慣れる。
- インデントとコロンの間違いに注意(ここでよくハマる)。
