{{category 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が投げられる。