Python | if 文 による条件分岐

Python
スポンサーリンク

では 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 のとき True
  • or:どちらかが True なら True
  • not:真偽を反転

例:

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
Python

7) よくあるミスと対処法

  • : を忘れる → 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

まとめ(初心者がまず覚えること)

  1. if 条件: の末尾には必ず :。次行はインデント。
  2. 比較は ==, !=, >, <, >=, <== は代入。
  3. elifelse で複数分岐が可能。上から順に評価される。
  4. and / or / not で条件を組み合わせる。
  5. truthy / falsy を使った短い書き方があるが、まずは明示的な比較に慣れる。
  6. インデントとコロンの間違いに注意(ここでよくハマる)。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました