【Python入門】真理値(bool)とは?解説と変換について

Python Python

Pythonの真理値(論理値/真偽値)について書いています。
真理値について解説した後に、他の値からbool関数を使って、bool型にどう変換されるか動作を確認してみました。

載せているサンプルコードはPythonのバージョン3.11.0で動作検証しました。

Pythonの真理値(bool)とは?

Pythonの真理値はTrueまたはFalseのどちらかの値です。
if文など、判定を行う際に意識する必要があります。

例えば、下記のようにif文で判定を行います。
Trueだったときには、定義した配下のブロックが処理されます。

test = True

if test:
    print('Trueです')
else:
    print('Falseです')

test変数にTrueを代入して、if文で判定しています。
上記ではTrueなので、print関数で「Trueです」が出力されて処理が終わります。

このように判定して処理を分けるときに、真理値を気にしておく必要があります。

比較演算子の真理値

比較演算子で値を比較したときにも、真理値が返ってきています。
例えば、下記のように同値の場合だとTrueが返ってきます。

print(10 == 10) # True

<」や「>」で、比較した場合でも正しい場合には、Trueが返ってきて違う場合にはFalseが返ってきます。

print(100 < 77) # False
print(77 > 10) # True

真理値の型は?

真理値のTrueとFalseはbool型になります。
type関数で型を確認すると、下記のようにboolになっています。

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

比較演算子で比較した場合にも、真理値が返ってきているので、bool型になります。

print(type(10 > 3)) # <class 'bool'>

bool型への変換

bool関数を使うと、他の型からbool型に値を変換することができます。
例えば、下記のように使うことができます。

result = bool("hello, world!")
print(result) # True

bool関数に文字列を渡して、bool型に変換しました。
結果Trueが返ってきます。

基本的に値があれば、Trueになりますが、一部の値ではFalseになるので注意が必要です。
以降で実際に変換してみました。

Noneを変換する

Noneを変換すると、Falseになります。

print(bool(None)) # False

ゼロを変換する

ゼロ(0)を変換すると、Falseになります。

print(bool(0)) # False

数値を変換する

数値を変換すると、Trueになります。

print(bool(100)) # True

文字列を変換する

文字列を変換すると、Trueになります。

print(bool("コードライク")) # True

空文字を変換する

空文字を変換すると、Falseになります。

print(bool("")) # False

リストを変換する

リストを変換すると、Trueになります。

print(bool(['apple', 'banana', 'orange'])) # True

空のリストを変換する

空のリストを変換すると、Falseになります。

print(bool([])) # False

辞書を変換する

辞書を変換すると、Trueになります。

print(bool({'fruit1':'apple', 'fruit2':'banana', 'fruit3':'orange'})) # True

空の辞書を変換する

空の辞書を変換すると、Falseになります。

print(bool({})) # False

集合を変換する

集合を変換すると、Trueになります。

print(bool({'apple', 'banana', 'orange'})) # True

空の集合を変換する

空の集合を変換すると、Falseになります。

print(bool(set())) # False

タプルを変換する

タプルを変換すると、Trueになります。

print(bool(('apple', 'banana', 'orange'))) # True

空のタプルを変換する

空のタプルを変換すると、Falseになります。

print(bool(())) # False

bool型への変換まとめ

今回動作を検証してみた内容を表にまとめました。

項目 値の例 真理値
None bool(None) False
数値ゼロ bool(0) False
数値 bool(100) True
文字列 bool(“コードライク”) True
空文字列 bool(“”) False
リスト bool([‘apple’, ‘banana’, ‘orange’]) True
空のリスト bool([]) False
辞書 bool({‘fruit1′:’apple’, ‘fruit2′:’banana’, ‘fruit3′:’orange’}) True
空の辞書 bool({}) False
集合 bool({‘apple’, ‘banana’, ‘orange’}) True
空の集合 bool(set()) False
タプル bool((‘apple’, ‘banana’, ‘orange’)) True
空のタプル bool(()) False

空になっているものはFalseでした。
空文字もFalseになりました。

コメント

タイトルとURLをコピーしました