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つ)でコードブロックを表す