閉じる

Pythonのif文の基本と書き方をサンプルコード付きで解説

Pythonのif文は、条件に応じて処理を分けるための最も基本的な制御構文です。

初心者の方がつまずきやすいインデントやコロンの書き方、比較演算子の使い方、よくあるエラーまで、動くサンプルコードと出力例を交えながら丁寧に解説します。

この記事だけで基本をしっかり身につけられます。

Pythonのif文とは?

if文は「ある条件が真(True)ならこの処理を実行する」という分岐の仕組みです。

Pythonではブロックの開始を表す:(コロン)と、インデント(字下げ)で処理のまとまりを表現します。

中括弧を使わないため、読みやすさと書きやすさが特長です。

  • 条件が1つだけのときはifを使います。
  • 条件が複数あるときはelif(else ifの略)で追加できます。
  • どれにも当てはまらない場合の処理はelseで書きます。

インデントはスペース4つが推奨です。

タブとスペースの混在はエラーの原因になります。

Python if文の書き方と使い方(基本構文)

基本構文の形

Pythonのif文の基本形をまず確認します。

コロンとインデントに注目してください。

Python
# if / elif / else の基本形
x = 10  # 判定する値

if x > 10:  # 条件1 (True のときこのブロックが実行される)
    print("10より大きい")
elif x == 10:  # 条件2 (上がFalseで、これがTrueのとき実行)
    print("ちょうど10")
else:  # どの条件にも当てはまらないとき
    print("10未満")

# ネスト(入れ子)の例
y = -3
if y >= 0:
    if y % 2 == 0:
        print("yは0以上かつ偶数")
    else:
        print("yは0以上かつ奇数")
else:
    print("yは負の数")
実行結果
ちょうど10
yは負の数

サンプルコード(数値の比較)

数値の大小や等しいかどうかを比較して分岐する典型例です。

試験の点数をランク分けします。

Python
# スコアに応じて評価を分ける
score = 85

if score >= 90:
    print("評価: A")
elif score >= 70:  # ここに到達した時点で score < 90 が確定
    print("評価: B")
elif score >= 50:
    print("評価: C")
else:
    print("評価: D")
実行結果
評価: B

サンプルコード(文字列の空チェック)

空文字はFalseとして扱われるため、存在チェックがシンプルに書けます。

Python
# 文字列が空かどうかで分岐
name = "Alice"
if name:  # 空でなければTrue
    print(f"こんにちは、{name}さん")
else:
    print("名前が空です")

# 逆に「空なら」を判定したいとき
name2 = ""
if not name2:  # not をつけると「空ならTrue」
    print("name2 は空です")

# len(...) を使った書き方(動作は同じ)
# ※len()は文字数をカウントする関数
msg = "hi"
if len(msg) > 0:
    print("msgは空ではありません")
実行結果
こんにちは、Aliceさん
name2 は空です
msgは空ではありません

サンプルコード(inputの値で分岐)

inputの戻り値は文字列です。

数値として比較したいときはint(...)で変換します。

安全のためtry/exceptで数値以外の入力も扱います。

Python
# 年齢の入力によって分岐する例
raw = input("年齢を入力してください: ")  # 文字列として受け取る
try:
    age = int(raw)  # 数値に変換
    if age >= 20:
        print("成人です")
    else:
        print("未成年です")
except ValueError:
    print("数値を入力してください")
実行結果出力例(1: 正しい数値を入力した場合)
年齢を入力してください: 18
未成年です
出力例(2: 数値以外を入力した場合)
年齢を入力してください: abc
数値を入力してください

条件式の作り方と比較演算子

比較演算子(==, !=, >, >=, <, <=)

代表的な比較演算子と意味、簡単な評価例をまとめます。

演算子意味評価結果
==等しい3 == 3True
!=等しくない3 != 5True
>より大きい5 > 3True
>=以上5 >= 5True
<より小さい2 < 10True
<=以下2 <= 1False

複数の比較をつなげる連鎖比較も可能です。

例えば20 <= age < 65は、ageが20以上かつ65未満を表します。

真偽値と空の値(Falseになるもの)

Pythonでは「空」を表す多くの値がFalseとみなされます

if文ではその性質を活用できます。

真偽値
FalseFalse
NoneFalse
0, 0.0, 0jFalse
空文字""False
空リスト[]、空タプル()、空辞書{}set()False
要素数0のrange(0)False

確認用の短いコードです。

Python
values = [False, None, 0, 0.0, "", [], {}, set(), range(0)]
for v in values:
    print(v, "->", bool(v))
実行結果
False -> False
None -> False
0 -> False
0.0 -> False
 -> False
[] -> False
{} -> False
set() -> False
range(0, 0) -> False

条件式でよく使うパターン

実用でよく使う書き方をまとめて示します。

Python
email = "user@example.com"
age = 30
x = 6
items = []

# 文字列内に特定の文字が含まれるか
if "@" in email:
    print("メール形式らしい")

# 範囲チェック(連鎖比較がシンプル)
if 20 <= age < 65:
    print("就業年齢層です")

# 複数条件の組み合わせ(and, or, not)
if x > 0 and x % 2 == 0:
    print("xは正の偶数")

# コレクションが空かどうか
if not items:  # 空ならTrue
    print("itemsは空です")

# Noneチェックは 'is' を使うのがPythonic
value = None
if value is None:
    print("値はNoneです")
実行結果
メール形式らしい
就業年齢層です
xは正の偶数
itemsは空です
値はNoneです

「Noneとの比較はisを使う」のが慣例です。

等価性==ではなく、isで同一オブジェクトかを確かめます。

Python if文のエラーと落とし穴

コロン忘れとSyntaxError

Pythonではブロックの前に:が必須です。

忘れると構文エラーになります。

Python
# NG: コロン忘れ
# if True の末尾に : を付けていない
# if True
#     print("OK")

# OK: コロンを付ける
if True:
    print("OK")

エラーメッセージ例(NGの場合)

実行結果
  File "example.py", line 3
    if True
           ^
SyntaxError: expected ':'

出力例(OKの場合)

実行結果
OK

コロンとインデントはセットと覚えると防げます。

インデントの混在(Tabとスペース)

タブとスペースを混在させるとTabErrorになります。

必ずスペース4つに統一しましょう。

Python
# NGの例(説明用の擬似コード: 1行目はタブ、2行目はスペースでインデント)
def greet():
	# ↑タブ
    print("Hello")  # ↑スペース

greet()

エラーメッセージ例

実行結果
TabError: inconsistent use of tabs and spaces in indentation

対策として、エディタの設定で「インデント=スペース」「幅=4」に固定するのが安全です。

代入(=)と比較(==)の取り違え

条件式で=は使えません。

=は代入、==が比較です。

代入を書いてしまうと構文エラーになります。

Python
# NG
# x = 1
# if x = 1:  # ← ここが間違い(= は代入)
#     print("一致")

# OK
x = 1
if x == 1:  # ← == で比較
    print("一致")

エラーメッセージ例(NGの場合)

実行結果
  File "example.py", line 3
    if x = 1:
         ^
SyntaxError: invalid syntax

出力例(OKの場合)

実行結果
一致

文字列と数値の比較に注意

Python 3ではstrintの大小比較はできません。

TypeErrorになります。

Python
# NG: 型が違うまま比較
# if "5" > 3:
#     print("大きい")

# OK: 文字列を数値に変換してから比較
if int("5") > 3:
    print("大きい")

エラーメッセージ例(NGの場合)

実行結果
TypeError: '>' not supported between instances of 'str' and 'int'

出力例(OKの場合)

実行結果
大きい

inputは文字列 → intに変換して比較

inputの戻り値は常に文字列です。

数値比較するにはintなどで変換しましょう。

変換せず比較するとエラーになります。

Python
# NG: 変換せずに比較(説明用、実行するとエラー)
# age = input("年齢: ")  # 例: "20"
# if age >= 18:  # 右辺は int、左辺は str → 比較できない
#     print("成人")

# OK: intで変換し、例外もケア
raw = input("年齢: ")
try:
    age = int(raw)
    if age >= 18:
        print("成人")
    else:
        print("未成年")
except ValueError:
    print("数字を入力してください")

エラーメッセージ例(NGの場合)

実行結果
TypeError: '>=' not supported between instances of 'str' and 'int'

出力例(OKの場合)

実行結果
年齢: 20
成人
ポイント

小数を扱うときはfloat(raw)、厳密な数値検証が必要なら正規表現や例外処理を組み合わせます。

まとめ

この記事ではPythonのif文の基本(書き方・比較演算子・空値の扱い)を、実行可能なサンプルとともに解説しました。

重要なのは、コロン:とインデントを正しく書くこと、条件の型をそろえて比較すること、そして空の値を簡潔に判定する書き方を身につけることです。

特にinputは文字列という前提を忘れず、必要に応じてintfloatに変換しましょう。

まずはここで覚えた基本パターン(数値の比較、文字列の空チェック、範囲判定、and/or/notの組み合わせ)を、自分の小さなスクリプトに取り入れて慣れていくのがおすすめです。

慣れてきたら、他の制御構文(ループなど)と組み合わせることで、より実用的なプログラムを組み立てられるようになります。

この記事を書いた人
エーテリア編集部
エーテリア編集部

人気のPythonを初めて学ぶ方向けに、文法の基本から小さな自動化まで、実際に手を動かして理解できる記事を書いています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!