0

''他のものが考慮されていない間、常に考慮されることを確信できますFalseか?

>>> if '':
...    print('bah')
...
>>> if 'x':
...    print('bah')
...
bah

なぜまたはなぜそうではないのですか?Pythonのどのメカニズムがこの動作を定義していますか?

''がと評価された場合False、なぜこの結果が得られるのですか?

>>> if '' == False:
...    print('bah')
...
>>>
4

1 に答える 1

9

ドキュメントから:

任意のオブジェクトは、真理値、iforwhile条件での使用、または以下のブール演算のオペランドとしてテストできます。次の値はfalseと見なされます。

  • None

  • False

  • 任意の数値タイプのゼロ0、たとえば0L、、、、。0.00j

  • 空のシーケンス、たとえば''、、、。()[]

  • たとえば、空のマッピング{}

  • ユーザー定義クラスのインスタンス。クラスが__nonzero__()または__len__()メソッドを定義している場合、そのメソッドが整数のゼロまたはブール値を返すときFalse

他のすべての値はtrueと見なされるため、多くのタイプのオブジェクトは常にtrueです。

于 2012-08-09T11:08:20.217 に答える