Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのbool()関数とは?Falseを返す条件とサンプルコードを解説

Pythonの組み込み関数 bool() は、引数として渡された値を真偽値(True / False)に変換して返します。引数には任意のオブジェクトを指定でき、戻り値は以下の条件に従って決まります。ここで挙げる値以外は、すべて True を返します。

False を返す条件

bool() が False を返すのは、次のような場合です。

  • None
  • False に評価される条件式
  • 数値型のゼロ(int 型の 0、float 型の 0.0 など)
  • 空のシーケンス()[]'' など)
  • 空のマッピング{} など)
  • __bool__() または __len__() メソッドが 0 または False を返すクラスのオブジェクト

コード例

以下のプログラムでは、これらのケースをすべて確認できます。

print("None の場合 :", bool(None))
print("True の場合 :", bool(True))
print("ゼロの場合 :", bool(0))

# False に評価される式(18 / 3 = 6.0 なので 0 == 6.0 は False)
print("False に評価される式 :", bool(0 == (18/3)))

# True に評価される式(18 % 3 = 0 なので 0 == 0 は True)
print("True に評価される式 :", bool(0 == (18%3)))

s = ()
print("空のシーケンス :", bool(s))

m = {}
print("空のマッピング :", bool(m))

t = 'Tutorialspoint'
print("空でない文字列 :", bool(t))

実行結果

上記のコードを実行すると、次の出力が得られます。

None の場合 : False
True の場合 : True
ゼロの場合 : False
False に評価される式 : False
True に評価される式 : True
空のシーケンス : False
空のマッピング : False
空でない文字列 : True

補足:bool は int のサブクラス

Pythonでは bool 型は int 型のサブクラスであり、True は 1、False は 0 として扱われます。そのため、真偽値をそのまま数値演算に使うことも可能です。また、if 文や while 文などの条件判定では、明示的に bool() を呼び出さなくても、同じルールに基づいて値が自動的に真偽値へ変換されます。この「真理値判定」の仕組みを理解しておくと、条件分岐のバグ防止やコードの可読性向上に役立ちます。

  1. PythonでisNumber()関数を実装する方法をわかりやすく解説

    はじめに本記事では、Python 3.x(またはそれ以前のバージョン)を使ってisNumber()関数を自前で実装する方法を解説します。この関数は文字列を引数として受け取り、その文字列が数値として解釈できるかどうかに応じて、ブール値のTrueまたはFalseを返します。実装には、try文とexcept文による例外処理の仕組みを活用します。isNumber()関数の実装例それでは、実際のコード例を見ていきましょう。# isNumber()関数の実装 def isNumber(s): if(s[0] == -): s = s[1:] # 例外処理 try:

  2. Pythonの正規表現でマッチ結果をTrue/Falseとして判定する方法

    Pythonで正規表現のマッチ結果を真偽値(True/False)として扱いたい場合、reモジュールのmatch()メソッドやsearch()メソッドを利用するのが基本です。 マッチ結果の戻り値の仕組み re.search()やre.match()は、パターンが見つかった場合はMatchオブジェクトを返し、見つからなかった場合はNoneを返します。 Matchオブジェクトはブール値として常に True と評価される Noneはブール値として False と評価される つまり、戻り値をbool()で変換すれば、そのままTrue/Falseとして取得できます。 実行例 >>>