if
文やwhile
文の条件で真偽値が必要になるのでメモ
bool型
真偽の判定にはbool
型を使う。bool
型にはTrue
とFalse
がある。bool
型はint
型のサブクラスであり、True
とFalse
はそれぞれ1
と0
に等価。
>>> True == 1 True >>> True == 0 False >>> False == 1 False >>> False == 0 True
True
とFalse
で計算もできる。
>>> 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
と判定される。
True
、False
のどちらに判定されるかは、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
ただしNone
はFalse
となる。文字列の"None"ではない。
>>> print( bool(None) ) False >>> print( bool("None") ) True
bool演算
and
、or
、not
でbool
型同士の演算ができる。
>>> 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
文などの条件に使えるみたい。