本ページはプロモーションが含まれています

【Python】ブール値(True、False)の確認・判定(真理判定、bool関数)

Python組込み型組込み関数

Pythonでは真理値(真偽値)をブール値FalseまたはTrueで表します。
どのオブジェクトもTrueまたはFalseとして判定でき、if文などの条件に使用できます。また、 組込み関数bool()を使うとオブジェクトを真理判定に基づいてブール値に変換することができます。
本記事ではbool()によるブール値の確認方法、およびPythonの真理(真偽)判定についてまとめます。

スポンサーリンク

ブール値

ブール値 は定数オブジェクトTrueFalseの2つのみをとります。これらは真理値(真偽値)を表すために用いられます。

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

また、ブール値は数値処理の中で使われる場合はそれぞれ、

  • True → 1
  • False → 0

と同様に扱われます。

>>> 1 + False
1
>>> 1 + True
2

bool関数の使い方

組込み関数bool() は、オブジェクトや演算式等を真理値判定 に基づいて、

  • 真の場合:True
  • 偽の場合:False

に変換します。

使い方は下記の通りです。

bool([x])

引数xは判定したいオブジェクトや演算式を設定します。
具体例を以下に示します。

>>> x = "ABC"
>>> bool(x)
True

>>> a = 1
>>> b = 1
>>> bool(a == b)
True

>>> a = 1
>>> b = 2
>>> bool(a == b)
False

オブジェクトの真理(真偽)判定について

Pythonのオブジェクトは真理値(True または False)として判定できます。
Falseとして定義されたオブジェクトを除き、 デフォルトではTrueとなります。

>>> x = 10    # 整数
>>> bool(x)
True

>>> x = 'abc'    # 文字列
>>> bool(x)
True

>>> x = [1, 2]    # リスト
>>> bool(x)
True

>>> x = {'a', 1}    # 辞書
>>> bool(x)
True

>>> class Myclass:    # クラス
...     a = 1
...
>>> bool(Myclass)
True

オブジェクトが下記を定義していた場合はFalseと判定されます。

  • __bool__() メソッドが定義されていて、それが False を返す場合
  • >>> class Myclass2:
    ...     def __bool__(self):
    ...         return False
    ...
    
    >>> x = Myclass2()
    >>> bool(x)
    False
  • __len__() メソッドが定義されていて、それが 0 を返す場合
  • >>> class Myclass3:
    ...     def __len__(self):
    ...         return 0
    ...
    >>> x = Myclass3()
    >>> bool(x)
    False

以下の組み込みオブジェクトはFalseと判定されます。

  • Falseと定義されている定数: None, False
  • >>> bool(None)
    False
    >>> bool(False)
    False
  • 数値型における0: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • >>> bool(0)
    False
    
    >>> bool(0.0)
    False
    
    >>> bool(0j)
    False
    
    >>> import decimal
    >>> bool(decimal.Decimal(0))
    False
    
    >>> import fractions
    >>> bool(fractions.Fraction(0, 1))
    False
  • 空のシーケンス、コレクション:””, [], (), {}, set(), range(0)
  • >>> bool("")
    False
    
    >>> bool([])
    False
    
    >>> bool(())
    False
    
    >>> bool({})
    False
    
    >>> bool(set())
    False
    
    >>> bool(range(0))
    False

またオブジェクトの真理判定は、if文やwhile文の条件ブール演算の被演算子として使えます。

環境

  • OS: Ubuntu20.04LTS
  • Python3.9.7

まとめ

  • 標準組込み関数bool()を使って真理値判定(True or False)の結果を確認することができる
  • オブジェクトはデフォルトではTrueを返すが、Falseを返す様定義されたクラスや標準オブジェクト(数値型の0や空のシーケンス)もある
  • 参考資料公式リファレンス – 組み込み型 – 真理値判定

参考書籍

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!

シェアする
ひびきをフォローする