Pythonのブール型をやさしく理解する
ブール型は「Yes/No」を表すための基本のことばです。Pythonでは値が2つだけで、True(真)かFalse(偽)。条件分岐や繰り返しの土台になるので、ここをつかむとコードの動きが一気にわかりやすくなります。
ブール型の基本
- 値は2つだけ:
True(真)とFalse(偽)。 - 型の名前:
bool型。Pythonではtype(True)はboolになります。 - よく使う場面:
if文、while文、比較(==, <, > など)、論理演算(and, or, not)。
print(True) # True
print(False) # False
print(type(True)) # <class 'bool'>
Python比較演算でブール値が返る
- 同じかどうか(==):
print(3 == 3) # True
print(3 == 4) # False
Python- 大なり・小なり(>, <, >=, <=):
print(5 > 2) # True
print(2 >= 2) # True
print(1 < 0) # False
Python- 等しくない(!=):
print("cat" != "dog") # True
Python- 文字列や長さとも比較できる:
name = "Python"
print(len(name) > 3) # True(文字数が3より大きい)
Python論理演算子(組み合わせて考える)
- and(かつ): 両方TrueならTrue
age = 20
has_ticket = True
print(age >= 18 and has_ticket) # True
Python- or(または): どちらかがTrueならTrue
is_member = False
has_coupon = True
print(is_member or has_coupon) # True
Python- not(否定): TrueをFalseに、FalseをTrueに
is_empty = False
print(not is_empty) # True
Pythonif文での使い方(基本形)
- 条件がTrueなら中の処理が実行される:
temperature = 30
if temperature >= 25:
print("今日は暑いね!") # Trueなので表示される
Python- if / elif / else の流れ:
score = 68
if score >= 80:
print("合格(上位)")
elif score >= 60:
print("合格")
else:
print("不合格")
Python例題で身につける
例題1:偶数か奇数か判定
- 狙い: 比較と条件分岐の組み合わせ
n = 7
is_even = (n % 2 == 0) # 偶数ならTrue
if is_even:
print("偶数")
else:
print("奇数") # 7は奇数
Python例題2:ログイン判定
- 狙い: and / not の使い方
input_user = "alice"
input_pass = "secret"
is_locked = False
is_user_ok = (input_user == "alice")
is_pass_ok = (input_pass == "secret")
if is_user_ok and is_pass_ok and not is_locked:
print("ログイン成功")
else:
print("ログイン失敗")
Python例題3:割引適用
- 狙い: or で「どれか満たせばOK」
is_member = False
has_coupon = True
is_campaign_day = False
apply_discount = is_member or has_coupon or is_campaign_day
if apply_discount:
print("割引を適用")
else:
print("通常価格")
Python例題4:入力チェック(空文字を除外)
- 狙い: not と長さチェック
user_name = ""
is_valid = not (len(user_name) == 0) # 空でなければTrue
if is_valid:
print("登録します")
else:
print("名前を入力してください")
Python真偽値として評価されるもの(「truthy」「falsy」)
- Pythonでは、ブール値以外も条件式でTrue/Falseとして扱われることがある。
- falsy(偽とみなされるもの): 0、0.0、空文字
""、空のリスト[]、空の辞書{}、None,False - truthy(真とみなされるもの): 上記以外のほとんど(例:非ゼロの数値、要素のあるリストや文字列)
- falsy(偽とみなされるもの): 0、0.0、空文字
items = []
if items: # 空リストはFalseとして扱われる
print("商品があります")
else:
print("商品がありません")
Pythonブール型の数値との関係(豆知識)
- True は 1、False は 0 として振る舞うことがある(計算に混ぜないのが初心者向けの安全策)。
print(True + 2) # 3
print(False * 5) # 0
Python使える場面もあるけれど、読みやすさを優先して「条件は条件として書く」のがおすすめ。
よくあるつまずきと回避法
- 比較と代入の混同:
==は比較、=は代入。条件式では==を使う。 - ダブルクオートと文字列比較:
"True"は文字列。ブール値のTrueと混同しない。 - not の範囲:
not a == bは(not a) == bではなく、not (a == b)。丸括弧で意図を明確に。
a = 3
b = 5
print(not (a == b)) # True(aとbは等しくない)
Python練習問題
- 問題: 年齢
ageが18以上なら「入場可」、それ以外は「入場不可」と表示するコードを書いてください。 - 問題: 文字列
sが空でないときに「OK」を表示するコード。 - 問題: 変数
xが10以上かつ偶数なら「条件クリア」を表示。 - 問題: リスト
numsに要素があるときだけ「先頭は○○」と先頭要素を表示。
解答と解説
練習問題1:年齢が18以上なら「入場可」、それ以外は「入場不可」
age = 20
if age >= 18:
print("入場可")
else:
print("入場不可")
Python解説:
>=は「以上」を表す比較演算子。ifの条件がTrueならそのブロックが実行される。- 20は18以上なので「入場可」が表示される。
練習問題2:文字列が空でないときに「OK」を表示
s = "hello"
if len(s) > 0:
print("OK")
Python解説:
len(s)は文字列の長さを返す。- 空文字
""の長さは0。 len(s) > 0がTrueなら「OK」と表示される。- Pythonでは空文字は「False」とみなされるので、次のようにも書ける:
if s: print("OK")
練習問題3:xが10以上かつ偶数なら「条件クリア」
x = 12
if x >= 10 and x % 2 == 0:
print("条件クリア")
Python解説:
x >= 10は「10以上かどうか」。x % 2 == 0は「偶数かどうか」。andで両方がTrueなら「条件クリア」。- 12は10以上かつ偶数なのでTrue。
練習問題4:リストに要素があるときだけ「先頭は○○」
nums = [5, 8, 10]
if nums: # 空リスト [] は False とみなされる
print("先頭は", nums[0])
Python解説:
- リストが空ならFalse、要素があればTrue。
nums[0]はリストの先頭要素。[5, 8, 10]の場合は「先頭は 5」と表示される。
まとめ
- if文は「条件がTrueなら実行」というシンプルな仕組み。
- 比較演算子(==, >=, <=, !=)で条件を作る。
- and / or / not で条件を組み合わせる。
- 空文字や空リストはFalse扱いになるので便利。
次のステップとしては「自分で条件を考えてみる」ことです。
例えば「点数が90以上ならA、70以上ならB、50以上ならC、それ以下はD」といった判定を作ってみると、if文の理解がぐっと深まります。

