ブール値(True / False)って何?
- Python では条件の「正しい/間違い」を表す値を ブール値(Boolean) と呼びます。
- 値は
True(真)かFalse(偽)のどちらか。これを使ってifやwhileの条件判断を行います。
print(3 > 1) # True
print(5 == 2) # False
Python比較演算子(よく使うもの)
==等しい、!=等しくない>より大きい、<より小さい>=以上、<=以下
例:
a = 10
print(a == 10) # True
print(a < 5) # False
Python論理演算子:and, or, not
複数の条件を組み合わせるときに使います。
and:すべての条件が True のときだけ Trueor:どれか一つでも True なら Truenot:条件を 反転(True→False、False→True)
表で覚えると分かりやすい(簡易版):
True and True→TrueTrue and False→FalseTrue or False→TrueFalse or False→Falsenot True→False
例:
x = 7
print( x > 0 and x < 10 ) # True(両方とも True)
print( x < 0 or x > 5 ) # True(どちらかが True)
print( not (x % 2 == 0) ) # True(x は偶数ではない → True)
Python優先順位と括弧
notが最も強く、その次がand、最後がor。- 複雑になったら 必ず括弧
()で意図を明確にしましょう。
# not が先に評価される
print( True or not False and False ) # 結果は True
# 誤解を避けるため括弧で明示
print( (True or not False) and False ) # False
Pythonチェーン比較(便利な書き方)
0 < x < 10 のように比較をつなげられます。
これは 0 < x and x < 10 と同じ意味です。
x = 5
if 0 <= x < 10:
print("x は 0 以上 10 未満です。")
Python真偽値に暗黙的に変換されるもの(truthy / falsy)
Python では値によって True / False とみなされるものがあります(if 文などで評価されるとき):
False 扱い(Falsy) の例:
0,0.0""(空文字列)[],(),{}(空のリスト・タプル・辞書)None
→ これらは条件ではFalseとみなされます。
True 扱い(Truthy):
- 非ゼロの数値、空でない文字列やコレクションなどは
True。
例:
if []:
print("空リストは True") # 実行されない(Falsy)
else:
print("空リストは False と評価されます")
Python短絡評価(ショートサーキット)
andやorは必要な評価を終えたら残りを評価しません(効率的で、副作用を持つ処理と組み合わせると挙動に注意)。
例:A and Bのとき A がFalseなら B は評価されない。
def a():
print("a() 実行")
return False
def b():
print("b() 実行")
return True
print(a() and b()) # a() 実行 -> False -> b() は呼ばれない
print(a() or b()) # a() 実行 -> False -> b() が呼ばれて True
Python実用的な例(よくある使い方)
- ユーザーが 18〜65 歳かチェック:
age = 21
if age >= 18 and age < 65:
print("就労可能な年齢です")
Python- 入力が空でないことを確認:
name = input("名前を入力してください: ")
if not name:
print("名前が入力されていません!")
else:
print("こんにちは", name)
Python- リスト内に値があるか(
inを使う):
fruits = ["apple","banana","orange"]
if "banana" in fruits:
print("banana はリスト内にあります")
Python初心者がやりがちなミス・注意点
=(代入) と==(比較) を間違える:if x = 5:はエラー。比較は==。and/orの順番に注意。意図せず条件が短絡評価されることがある。複雑なら括弧で整理。- 空文字
""や0がFalseと評価されることを知らないとバグの原因に。 - 複数の比較をつなぐとき、
a < b < cがa < b and b < cと同じ意味であることを忘れがち。
練習問題(手を動かそう)
下に答え(解説)も付けます。まず自分で考えてから下の解答を見ると学びが深まります。
問1
変数 x = 12 のとき、0 < x < 10 or x % 2 == 0 の評価は?(True/False)
問2
次のコードは何を表示する?
x = ""
if x or x == 0:
print("True 部分")
else:
print("False 部分")
Python問3
数 n が奇数かつ 1〜100 の範囲にあるかを判定する if 条件を書きなさい。
問4(少し応用)
以下の関数 a(), b() は何が実行される?
def a():
print("A")
return False
def b():
print("B")
return True
print(a() and b())
print(a() or b())
Python解答と解説
問10 < 12 < 10 は False(12 は 10 未満ではない) → ただし x % 2 == 0 は True(12 は偶数) → False or True → True
問2x は空文字 ""(Falsy)。x or x == 0 は左辺 x が falsy なので右辺 x == 0 を評価。"" == 0 は False → 全体が False → “False 部分” が表示される。
問3(例)
n = 15
if 1 <= n <= 100 and n % 2 == 1:
print("1〜100 の奇数です")
Python問4(ショートサーキットの例)
a()実行 → “A” と表示 →Falseを返すa() and b()→a()が False のためb()は呼ばれない → 出力:”A” とFalse
- 次に
a() or b()→a()実行(”A”)、False のためb()実行(”B”)、b()は True を返す → 出力:”A” “B” とTrue
結果として表示される行は:
A
False
A
B
True
Python最後に(学習のコツ)
- 小さなコードを実際に動かしてみること。紙で考えるより実行して確認する方が早く身につきます。
- 条件が複雑なら 括弧
()を使って読みやすく。 print()を途中に入れて評価の順序(ショートサーキット)を確認すると理解しやすいです。
