Pythonの論理型(bool), AND・OR演算子について、基礎的な使い方を解説する。
Python論理型(bool)の基本
Pythonの論理型(boolean)は、真偽値を表現するための基本的なデータ型だ。
TrueとFalseの2つの値だけを持ち、主に条件判定やフラグ管理で使用される。スイッチのオン・オフのように、2択で値を表現する。
論理型の基本的な使用方法
# 論理型の変数定義
is_student = True
has_license = False
print(type(is_student)) #
print(type(has_license)) #
# 論理型の確認
print(is_student) # True
print(has_license) # False
論理型はboolクラスのインスタンスで、実際にはintクラスのサブクラスとして実装されている。そのため、Trueは数値の1、Falseは数値の0として扱われる。
条件分岐での論理型活用
論理型の真価は、if文と組み合わせた条件分岐で発揮される。
is_admin = True
is_logged_in = False
if is_admin: # is_admin == True と同じ意味
print("管理者画面にアクセスできます")
else:
print("一般ユーザーとしてアクセスします")
if not is_logged_in: # is_logged_in == False と同じ意味
print("ログインしてください")
not演算子を使うことで、論理値を反転させることができる。これは条件を否定したい場合に用いる。
bool()関数による型変換
Pythonではbool()関数を使って、他のデータ型を論理型に変換できる。この変換規則を理解しておくと、条件分岐をより効率的に書けるようになる。
# 数値の論理値変換
print(bool(0)) # False - 0は偽
print(bool(1)) # True - 0以外の数値は真
print(bool(-1)) # True - 負の数も真
print(bool(100)) # True
# 文字列の論理値変換
print(bool("")) # False - 空文字列は偽
print(bool("Hello")) # True - 空でない文字列は真
print(bool("0")) # True - 文字列の"0"も真
# コレクションの論理値変換
print(bool([])) # False - 空のリストは偽
print(bool([1, 2])) # True - 要素があるリストは真
print(bool({})) # False - 空の辞書は偽
print(bool({"key": "value"})) # True - 要素がある辞書は真

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)
受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。
AND演算子の使い方と実践例
AND演算子(and)は、複数の条件がすべて真の場合のみ真を返す論理演算子だ。日常会話での「〜かつ〜」に相当する。
基本的なAND演算
# 基本的なAND演算の真理値表
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
# 実際の条件判定での使用例
age = 25
income = 50000
if age >= 18 and income >= 30000: # 両方を満たす場合に中の処理が実行される
print("ローン審査に通りました")
print(f"年齢: {age}歳, 年収: {income}万円")
else:
print("ローン審査の条件を満たしていません")
複数条件でのAND演算活用
# 複数の条件をANDで組み合わせる
username = "admin"
password = "secret123"
is_active = True
if username == "admin" and password == "secret123" and is_active: # 全てを満たす場合に実行される
print("管理者ログイン成功")
else:
print("ログインに失敗しました")
# より複雑な条件の組み合わせ
score = 85
attendance_rate = 0.9
has_submitted_report = True
if score >= 80 and attendance_rate >= 0.8 and has_submitted_report:
print("合格です!優秀な成績でした")
print(f"得点: {score}点, 出席率: {attendance_rate * 100}%")
else:
print("残念ながら不合格です")
OR演算子の使い方と実践例
OR演算子(or)は、複数の条件のうち少なくとも1つが真の場合真を返す論理演算子だ。日常会話での「〜または〜」に相当する。
基本的なOR演算
# 基本的なOR演算の真理値表
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
# 実際の条件判定での使用例
weather = "雨"
temperature = 35
if weather == "雨" or temperature > 30: # どちらかを満たす場合に実行される
print("外出を控えることをお勧めします")
print(f"天気: {weather}, 気温: {temperature}度")
else:
print("外出日和ですね")
柔軟な条件判定でのOR演算
# 複数の支払い方法を許可する例
payment_method = "クレジットカード"
if payment_method == "現金" or payment_method == "クレジットカード" or payment_method == "電子マネー":
print(f"{payment_method}での支払いを受け付けます")
else:
print("申し訳ありません。その支払い方法は使用できません")
# VIP顧客の判定例
purchase_amount = 50000
membership_years = 3
is_premium_member = False
if purchase_amount >= 100000 or membership_years >= 5 or is_premium_member: # どれかを満たす場合に実行される
print("VIP顧客として特別サービスを提供します")
else:
print("通常サービスでご案内します")

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)
受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。
論理演算子使用時の注意点とベストプラクティス
可読性を重視した条件の書き方
複雑な論理演算は、適切な変数名や括弧を使って読みやすくすることが重要だ。
# 悪い例: 複雑で読みにくい
if age >= 18 and (income >= 30000 or has_guarantor) and credit_score > 600 and not is_blacklisted:
approve_loan()
# 良い例: 条件を明確に分割
is_adult = age >= 18
has_sufficient_income = income >= 30000 or has_guarantor
has_good_credit = credit_score > 600
is_eligible = not is_blacklisted
if is_adult and has_sufficient_income and has_good_credit and is_eligible:
approve_loan()
print("ローンが承認されました")
比較演算子との組み合わせ
Pythonでは比較演算子を連鎖させることができ、これを論理演算子と組み合わせると強力だ。
# 範囲チェックの例
score = 85
# 通常の書き方
if score >= 80 and score
空の文字列・リスト・辞書、0、Noneは偽値として扱われ、それ以外は真値となる。and, orを用いれば複数の条件をつなげることができる。