Categories: Python

【Python】bool型(真偽値)について解説します

この記事では、Pythonのbool型について解説します。

boolは、オンやオフなどの二者択一を表す場合や比較演算の演算結果として用いられています。また、フラグとしても使われたりと頻繁に使用される型です。

それでは、bool型について見ていきましょう!

boolとは?

boolとは、真偽値を定義するためのint型のサブクラスです。

真偽値とは、「真」(True)または「偽」(False)であるかを示す値のことです。「オン」や「オフ」の2つの状態を表現したり判定する際に使用されます。

また、「真理値」や「bool値」と呼ばれたりもします。

boolの基本的な使い方

bool値であるTrue(トゥルー)False(フォルス)組み込み定数として定義されています。なので、直接呼び出すだけで使用可能です。

print(True)   # True
print(False)  # False

print(type(True))   # <class 'bool'>
print(type(False))  # <class 'bool'>

定数なので代入しようとするとSyntaxErrorが発生します。

True = 1  # SyntaxError

bool型のコンストラクタから新しいインスタンスを生成しようとしても必ずTrue、またはFalseのどちらかが生成されます。どのような値がTrueFalseになるかは後述します。

print(bool(1))  # True
print(bool(0))  # False

bool値はint型のサブクラスなので数値処理を行うこともできます。その場合は、True = 1False = 0として扱われます。

print(0 + True)   # 1
print(0 + False)  # 0

この性質を利用することでリストなどに格納されているbool値の中に何個Trueが存在するかをsum関数を使って調べることができます。

l = [True, False, True]
print(sum(l))  # 2

boolの判定

bool値はif文やwhile文の条件式として使用されることがある。

if True:
    # 実行される

while True:
    # 無限ループ

上記のようにbool値を直接指定することもあるが大体は比較演算子などで条件を決めて指定する。また、bool値を返す関数を使ったりもする。

値を比較する方法【比較演算子】

num = 10

# 比較演算子
if num 

また、その他のオブジェクトもbool値として使用可能です。その場合、以下のような値がFalseとして扱われます。

  • 偽であると定義されている定数: NoneFalse
  • 数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)

これら以外のオブジェクトはTrueとして扱われます。

# 実行される
if 1:
if 'abc':
if [1, 2, 3]:

# 実行されない
if 0:
if '':
if []:

boolに変換

bool()を使うことで他の型のオブジェクトをbool値であるTrue、またはFalseに変換することができます。

# 0、または空でない場合 = True
i = bool(16362427)
f = bool(0.1)
st = bool('Hello')
l = bool([1, 2, 3])
t = bool(('a', 'b', 'c'))
d = bool({'a': 1, 'b': 2, 'c': 3})
s = bool({9, 8, 7})

# 0、または空の場合 = False
i = bool(0)
f = bool(0.0)
st = bool('')
l = bool([])
t = bool(())
d = bool({})
s = bool(set())
ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago