論理演算子
メニューを表示するにはスワイプしてください
人々は「はい、そしてはい」「はい、またはいいえ」「絶対に違う」と言います。Pythonでは、論理演算子 and、or、not がこれらの考えを形式的に表現し、True や False の比較で使うブール値(if/while)を生成します。
各演算子の意味
優先順位
not は and よりも強く結合し、それは or よりも強く結合します(not > and > or)。迷った場合は括弧を使用してください。
例えば、age >= 18 and has_id は両方の条件が成立した場合のみ True になります。
123age = 21 has_id = True print(age >= 18 and has_id) # True
真理値表
真理値表は、入力のすべての可能な真理値を一覧にし、論理式の結果となる出力を示す表。コードを実行せずに論理を考えるための簡潔な方法。
表の使い方
X が False で Y が True の場合、X and Y は False、X or Y は True、not X は True となる。
戻り値とショートサーキット評価
and と or は常にブール値の True または False を返すわけではありません。代わりに、いずれかのオペランドを返し、Python は最終結果が確定した時点で評価を早期終了(ショートサーキット)します。
-
A and B: -
Aが偽値の場合、結果は必ず偽値となるため、Python はショートサーキットしてAを返します(Bは評価されません)。 -
Aが真値の場合、結果は完全にBに依存するため、Python はBを評価してその値を返します。 -
A or B: -
Aが真値の場合、結果は必ず真値となるため、Python はショートサーキットしてAを返します(Bは評価されません)。 -
Aが偽値の場合、結果は完全にBに依存するため、Python はBを評価してその値を返します。 -
not Xは常に実際のブール値、すなわちTrueまたはFalseを返します。
1234567891011121314151617# Choosing a display name for a user profile username = "" # user didn't set a custom name print(username or "Guest") # "Guest" → fallback to default name username = "Alice" print(username or "Guest") # "Alice" → custom name is used # Checking login attempts and access permissions login_attempts = 0 access_level = 123 print(login_attempts and access_level) # 0 → login not yet attempted login_attempts = 5 print(login_attempts and access_level) # 123 → user has access after attempts # Checking empty and non-empty values print(not 0, not "Hello") # True False → 0 is falsey, non-empty string is truthy
1. 空欄を True または False で埋めてください。X = True、Y = False とします。
2. 「XでもYでもない」という古典論理に一致する文はどれか?
3. この式は何を返すか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください