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() を呼び出さなくても、同じルールに基づいて値が自動的に真偽値へ変換されます。この「真理値判定」の仕組みを理解しておくと、条件分岐のバグ防止やコードの可読性向上に役立ちます。
-
PythonでisNumber()関数を実装する方法をわかりやすく解説
はじめに本記事では、Python 3.x(またはそれ以前のバージョン)を使ってisNumber()関数を自前で実装する方法を解説します。この関数は文字列を引数として受け取り、その文字列が数値として解釈できるかどうかに応じて、ブール値のTrueまたはFalseを返します。実装には、try文とexcept文による例外処理の仕組みを活用します。isNumber()関数の実装例それでは、実際のコード例を見ていきましょう。# isNumber()関数の実装 def isNumber(s): if(s[0] == -): s = s[1:] # 例外処理 try:
-
Pythonの正規表現でマッチ結果をTrue/Falseとして判定する方法
Pythonで正規表現のマッチ結果を真偽値(True/False)として扱いたい場合、reモジュールのmatch()メソッドやsearch()メソッドを利用するのが基本です。 マッチ結果の戻り値の仕組み re.search()やre.match()は、パターンが見つかった場合はMatchオブジェクトを返し、見つからなかった場合はNoneを返します。 Matchオブジェクトはブール値として常に True と評価される Noneはブール値として False と評価される つまり、戻り値をbool()で変換すれば、そのままTrue/Falseとして取得できます。 実行例 >>>