2016-03-31 8 views
-4

私はtrueためfalse1スタンド用0スタンドと理解は、そうnot 1falsenot 0が真の意味を意味しますが、その他not 3not 4のようなもののために、なぜ彼らはfalseを意味するのですか? not 31になる可能性があるためです。PythonのではないAまたは%B

+1

ここで、x≠0は、「偽」である。 – Maroun

+0

* 'not 3'は '1'にな​​る可能性があるためです。*興味深い。なぜそれはそうだろう? –

+0

あなたの最初の仮定は間違っています、0は間違いを表しません。 –

答えて

1

これはコンピュータのロジックです。すべてのロジックは、0と1の組み合わせで機械に導入されています。すべてのロジックは、0と1で表される2面のFalseTrueです。したがって、Pythonがブール値オブジェクトを評価するために使用する0と1は、 。 boolオブジェクト自体は、表現のような異なる属性を持つintのサブクラスに過ぎず、多くの整数の属性がありません。

約PythonでTruth Value Testing

任意のオブジェクトは、ifやwhileの条件で使用するために以下のブール演算のオペランドとして、真理値を試験することができます。以下の値は偽であると考えられる:

  • 任意の数値タイプ、例えば、0、0L、0.0、0Jのなし
  • ゼロ。
  • 空のシーケンスは、たとえば'',(),[]です。
  • 空のマッピングは、たとえば{}です。ユーザ定義クラスの

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

他のすべての値はtrueと見なされます。したがって、多くの型のオブジェクトは常にtrueです。

関連する問題