Python PR

【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 < 20:
    print('numは20未満です')


# bool値を返す関数
if issubclass(bool, int):
    print('boolはintのサブクラスです')

また、その他のオブジェクトも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())