基礎

Pythonのif文|条件分岐の書き方をマスターする

if文は、条件に応じてプログラムの実行を分岐させるための構文です。「もし〜なら」「そうでなければ」という日常的な判断をプログラムで表現できます。

この記事では、if文の基本構文から、elif・elseの使い方、三項演算子まで詳しく解説します。

基本的な使い方

if文は if 条件式: の形で書き、条件がTrueの場合にインデントされたブロックが実行されます。

Python
age = 20

if age >= 18:
    print("成人です")
    print("選挙権があります")
実行結果
成人です
選挙権があります
インデントは必須

Pythonではインデント(通常スペース4つ)でコードブロックを表します。インデントがないとエラーになります。タブとスペースを混在させないよう注意しましょう。

if-else文

elseを使うと、条件がFalseの場合の処理を記述できます。

Python
temperature = 35

if temperature >= 30:
    print("真夏日です。水分補給を忘れずに!")
else:
    print("過ごしやすい気温です。")
実行結果
真夏日です。水分補給を忘れずに!

if-elif-else文

3つ以上の条件で分岐させたい場合は、elif(else ifの略)を使います。

Python
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(f"点数: {score}点 → 評価: {grade}")
実行結果
点数: 78点 → 評価: C

elifは上から順に評価され、最初にTrueになった条件のブロックだけが実行されます。どの条件にも当てはまらない場合にelseが実行されます。

条件式の書き方

if文では様々な条件式を使用できます。

Python
# 複数条件の組み合わせ(and, or)
age = 25
has_license = True

if age >= 18 and has_license:
    print("運転できます")

# in演算子(含まれるか判定)
fruit = "apple"
if fruit in ["apple", "banana", "orange"]:
    print(f"{fruit}は果物リストに含まれています")

# not演算子
is_raining = False
if not is_raining:
    print("傘は不要です")

# 文字列の空チェック
name = "太郎"
if name:
    print(f"こんにちは、{name}さん!")
else:
    print("名前が入力されていません")
実行結果
運転できます
appleは果物リストに含まれています
傘は不要です
こんにちは、太郎さん!

三項演算子(条件式)

Pythonでは、1行でif-elseを書く「三項演算子」が使えます。

Python
age = 20
status = "成人" if age >= 18 else "未成年"
print(status)

# 実用例:最大値を取得
a, b = 10, 20
max_value = a if a > b else b
print(f"最大値: {max_value}")
実行結果
成人
最大値: 20
三項演算子の使いどころ

三項演算子はシンプルな条件分岐に適しています。複雑な処理が必要な場合は、通常のif-else文を使った方がコードが読みやすくなります。

実践的な使い方

Python
# 料金計算プログラム
age = 12
is_member = True

if age < 6:
    base_price = 0
    category = "無料(未就学児)"
elif age < 13:
    base_price = 500
    category = "子供料金"
elif age < 65:
    base_price = 1000
    category = "大人料金"
else:
    base_price = 700
    category = "シニア料金"

if is_member:
    discount = int(base_price * 0.2)
    final_price = base_price - discount
    print(f"{category}: {base_price}円")
    print(f"会員割引: -{discount}円")
    print(f"お支払い: {final_price}円")
else:
    print(f"{category}: {base_price}円")
実行結果
子供料金: 500円
会員割引: -100円
お支払い: 400円

まとめ

  • if文で条件に応じた処理の分岐ができる
  • elifで複数条件、elseでどの条件にも当てはまらない場合を処理
  • and, or, not, inで複雑な条件を組み合わせられる
  • 三項演算子で1行のシンプルな条件分岐が書ける
  • インデント(スペース4つ)でコードブロックを表す