【6日でできるPython入門】条件分岐 if文②

Pythonのif文はとても柔軟で強力です。
ここでは、if文で使う比較演算子ブール演算子(論理演算子)
さらに「in」や「is」などPython特有の判定、
条件式の中で値そのものがTrue/Falseとして評価される仕組み(暗黙の真偽値)も学びます。

これらを身につければ、より現実的で柔軟な条件分岐が書けるようになります。

1.比較演算とin/is演算子

1.1. 比較演算子と条件式の応用

if文の条件には「値の比較」や「特定の値を含むか?」といった判定式が使えます。
比較演算子は次の通りです。

演算子意味
<より小さいif a < b
<=以下if x <= 100
>より大きいif age > 18
>=以上if score >= 60
==等しいif name == '田中'
!=等しくないif item != '終了'
is同一オブジェクトであるif obj is None
is not同一オブジェクトでないif value is not None
in含まれているif '猫' in animals

ファイル名: lesson13-1.py

# 入力された文字列の長さを判定し、様々な比較を行う
user_id = input('ユーザーIDを入力してください(8文字以上):')
if len(user_id) < 8:
    print('IDが短すぎます!')
elif len(user_id) > 12:
    print('IDが長すぎます!')
else:
    print('IDの長さは適切です。')

# in演算子の応用例
colors = ['赤', '青', '緑']
if '赤' in colors:
    print('赤が含まれています')

# is演算子の例
result = None
if result is None:
    print('結果が設定されていません')

実行結果

ユーザーIDを入力してください(8文字以上):python3
IDが短すぎます!
赤が含まれています
結果が設定されていません

1.2. ==とisの違い

ファイル名: lesson13-2.py

list1 = [1, 2, 3]
list2 = list1.copy()
print(list1 == list2)  # True(値は同じ)
print(list1 is list2)  # False(別のリスト)
  • == … 値が等しいかどうかを判定
  • is … 同じオブジェクトかどうか(同一性)

実行結果

True
False

2.ブール演算と暗黙の真偽値

2.1. ブール演算子(論理演算子)

複数の条件を組み合わせたいときはand/or/notを使います。

演算子意味
and両方ともTrueならTrueif x > 0 and x < 10
orどちらかがTrueならTrueif name == '佐藤' or name == '田中'
notTrue/Falseを逆転if not user_list

ファイル名: lesson13-3.py

score = int(input('テストの点数を入力してください(0-100):'))
if score >= 80 and score <= 100:
    print('優秀です!')
elif score >= 60:
    print('合格です。')
else:
    print('再チャレンジしましょう。')

実行結果

テストの点数を入力してください(0-100):90
優秀です!

2.2. 暗黙のTrue/False

Pythonのif文では、「空のリスト」「空文字」「0」などはFalseと見なされます。
逆に、1つでも要素があるリストや0以外の数値はTrueとして判定されます。

if条件での評価解説
''False空文字
0False整数の0
0.0False浮動小数点数の0
[]False空リスト
()False空タプル
{}False空辞書
set()False空集合
FalseFalsebool型のFalse
NoneFalseNoneTypeのNone
上記以外True1以上の数、非空文字列など

ファイル名: lesson13-4.py

items = []
if not items:
    print("リストは空です")
else:
    print("リストに要素があります")

実行結果

リストは空です

このように、if文では比較・論理・in/is・暗黙の真偽値判定など多彩な書き方が可能です。
より柔軟で“パイソニック”な条件分岐をどんどん書いてみましょう!