2016-07-05 8 views

答えて

4

は、それはboolean型に値を変換しようとします。この場合、「なし」は「偽」(https://docs.python.org/2.4/lib/truth.html)なので、not NoneTrueと評価されます。

したがって、x = not Nonex = Trueに相当します。つまり、変数xをTrueに割り当てることになります。

+0

== FALSE: 印刷他、 "同じ" : プリント "何かが怪しいです" –

+0

=(ないなし) 'ので、 = False'で 'False'と評価され、' else'ブロックに送られます。 –

+0

答えに感謝します。私はその事実を忘れました。(None = Trueではない) –

0

Noneは、Falseと評価されます。 Falseの反対側はTrueです。したがって、not Noneの結果はTrueです。ブール型の変換は、3 + Trueの場合と同様に自動的に行われ、4となります。

+0

しかし、NoneとFalseは全く異なる2つの事柄です。 NoneタイプはNoneTypeと値なし 、Trueはタイプ "Boolean"と値Trueを返します –

+0

Pythonのブール値は一般に型の点で非常に流動的ですが、多くのものは暗黙的に( 'None'のように)キャストできます。暗黙的に 'int'のような他の型にキャストされます。 –

1

notはブール型演算子(論理NOT)であるため、Noneをブール値に変換します。ブール値はFalseです。 Falseの反対またはnot NoneはTrueで、Trueを出力します。そして、なぜこのコードは(ないなし)であれば else文として私に出力を与える

>>> print(bool(None)) 
False 

>>> print(not bool(None)) 
True 
+0

なぜその(ないなし)== falseの場合はelse文 を実行: 印刷「と同じ」他 : プリント真が偽等しくないので、それは何かが怪しいです "出力します –

+0

@ManojGoswami「何かが魚ではありません」 – Li357

関連する問題