Truth Value Testing.py
[Python]
Pythonではオブジェクトをブール・コンテキストで評価すると、必ず真か偽になる。
以下は、Python Standard Libraryドキュメントから、偽として評価されるオブジェクトの一覧(Python Standard Library -> Built-in Types -> Truth Value Testing)。
None False 数値型のゼロ。たとえば、0, 0L, 0.0, 0j。 空のシーケンス型。たとえば、'', (), []。 空のマップ型。たとえば、{}。 ユーザー定義クラスの場合、__nonzero__()または__len__()が定義してあって、インスタンスのこれらのメソッドが数値のゼロまたはFalse値を返すと、偽と評価される。
それ以外のすべてのオブジェクトは真になる。
Perlと違って、文字列"0"は真なので注意。
Pythonでは式は真偽評価できないので注意。
CやPerlで可能な、
if a = (b + c) :
という風に、代入と、代入された値の真偽評価を一気に行う操作はできない。
SyntaxErrorが投げられる。