はじめに
Python基礎構文シリーズ第2回は「条件分岐(if文)」です。プログラムの流れを条件によって変える方法を学びます。
基本的なif文
age = 20
if age >= 18:
print("成人です")
重要: Pythonではインデント(字下げ)でブロックを表現します。通常は半角スペース4つを使用します。
if-else文
条件が満たされない場合の処理を追加できます。
age = 15
if age >= 18:
print("成人です")
else:
print("未成年です")
if-elif-else文
複数の条件を順番にチェックできます。
score = 75
if score >= 90:
print("評価: A")
elif score >= 80:
print("評価: B")
elif score >= 70:
print("評価: C")
elif score >= 60:
print("評価: D")
else:
print("評価: F")
elif は「else if」の略で、最初の条件が偽の場合に次の条件をチェックします。
比較演算子
| 演算子 | 意味 | 例 |
|---|---|---|
== | 等しい | x == 10 |
!= | 等しくない | x != 10 |
> | より大きい | x > 10 |
< | より小さい | x < 10 |
>= | 以上 | x >= 10 |
<= | 以下 | x <= 10 |
x = 10
print(x == 10) # True
print(x != 5) # True
print(x > 5) # True
print(x < 20) # True
print(x >= 10) # True
print(x <= 10) # True
論理演算子
複数の条件を組み合わせることができます。
and(かつ)
両方の条件が真の場合にTrue。
age = 25
income = 500
if age >= 20 and income >= 300:
print("ローン審査に通過")
or(または)
どちらかの条件が真の場合にTrue。
day = "土曜日"
if day == "土曜日" or day == "日曜日":
print("週末です")
not(否定)
条件を反転させます。
is_logged_in = False
if not is_logged_in:
print("ログインしてください")
組み合わせ
age = 25
is_student = True
has_coupon = False
# 学生、または25歳以下、またはクーポン持ち
if is_student or age <= 25 or has_coupon:
print("割引適用")
in演算子
リストや文字列に含まれているかを判定します。
fruits = ["りんご", "みかん", "バナナ"]
if "りんご" in fruits:
print("りんごがあります")
if "ぶどう" not in fruits:
print("ぶどうはありません")
# 文字列にも使用可能
message = "Hello, World!"
if "World" in message:
print("Worldが含まれています")
三項演算子
1行で条件分岐を書く方法です。
age = 20
# 通常のif文
if age >= 18:
status = "成人"
else:
status = "未成年"
# 三項演算子で書くと
status = "成人" if age >= 18 else "未成年"
print(status) # 成人
真偽値の評価
Pythonでは、以下の値は False として評価されます。
# Falseとして評価される値
if not 0:
print("0はFalse")
if not "":
print("空文字はFalse")
if not []:
print("空リストはFalse")
if not None:
print("NoneはFalse")
これを活用した書き方:
name = ""
# 冗長な書き方
if name != "":
print("名前があります")
# Pythonらしい書き方
if name:
print("名前があります")
else:
print("名前がありません")
ネストされたif文
if文の中にif文を書くこともできます。
age = 25
has_license = True
if age >= 18:
if has_license:
print("運転できます")
else:
print("免許を取得してください")
else:
print("18歳になるまで待ってください")
ただし、ネストが深くなると読みにくくなるため、可能な限り and や or で1つの条件にまとめることを推奨します。
まとめ
if,elif,elseで条件分岐- インデント(半角スペース4つ)でブロックを表現
- 比較演算子:
==,!=,>,<,>=,<= - 論理演算子:
and,or,not inでリストや文字列の包含を判定- 三項演算子:
値1 if 条件 else 値2
次回は「ループ処理(for, while)」について学びます。