Python | ブール型(bool型)

Python
スポンサーリンク

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
Python

if文での使い方(基本形)

  • 条件が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(真とみなされるもの): 上記以外のほとんど(例:非ゼロの数値、要素のあるリストや文字列)
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

練習問題

  1. 問題: 年齢 age が18以上なら「入場可」、それ以外は「入場不可」と表示するコードを書いてください。
  2. 問題: 文字列 s が空でないときに「OK」を表示するコード。
  3. 問題: 変数 x が10以上かつ偶数なら「条件クリア」を表示。
  4. 問題: リスト 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文の理解がぐっと深まります。

タイトルとURLをコピーしました