トップ 一覧 検索 ヘルプ RSS ログイン

Truth Value Testing.pyの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category Python}}

Pythonではオブジェクトをブール・コンテキストで評価すると、必ず真か偽になる。
以下は、Python Standard Libraryから、偽として評価されるオブジェクトの一覧。
以下は、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が投げられる。