さつまろぐ

CAEとかプログラムとか、出来たことの記録など、誰かのお役に立てれば幸い。

Pythonで遊ぶ 真偽値

if文やwhile文の条件で真偽値が必要になるのでメモ

bool型

真偽の判定にはbool型を使う。bool型にはTrueFalseがある。bool型はint型のサブクラスであり、TrueFalseはそれぞれ10に等価。

>>> True == 1
True
>>> True == 0
False
>>> False == 1
False
>>> False == 0
True

TrueFalseで計算もできる。

>>> True + True
2
>>> (True + False) * 3
3

真偽値の判定

詳細はPythonのドキュメントに詳しく書かれている。

組み込み型

デフォルトではオブジェクトはTrueと判定される。Falseと判定されるのは

・偽であると定義されている定数: None と False
・数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
・空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)

なので、0以外の数値、文字列、空でないリストはTrueと判定される。 TrueFalseのどちらに判定されるかは、bool()関数で調べることができる。

>>> print( bool(10) )
True
>>> print( bool("abc") )
True
>>> print( bool([0,0,0]) )
True
>>> print( bool(0) )
False
>>> print( bool("") )
False
>>> print( bool([ ]) )
False

ただしNoneFalseとなる。文字列の"None"ではない。

>>> print( bool(None) )
False
>>> print( bool("None") )
True

bool演算

andornotbool型同士の演算ができる。

>>> print(True and True)
True
>>> print(True and False)
False
>>> print(False or True)
True
>>> print(False or False)
False
>>> print(not True)
False
>>> print(not False)
True

とりあえず変数が0か空でなければTrueなので、if文などの条件に使えるみたい。

広告