2017-12-22 15 views
-2

Pythonでは、True != TrueFalseであり、False != TrueTrueである必要があります。しかし、評価結果がTrueであるべきではないでしょうか?なぜTrue!= True!= TrueがFalseに評価される

+0

私はこれを実行しました:print(True!= True)print(False!= True)。そして私が得た出力はFalse Trueです。私はあなたの疑問が何であるかは分かりません。 –

+1

疑問は、条件が算術演算のように逐次かつ累積的に評価されると考えることに由来します。代わりに、これは実際には単一の同時チェック( 'and'演算によって連鎖される)のチェーンです。 – gandreadis

+3

[比較のためのドキュメント](https://docs.python.org/3/reference/expressions.html#comparisons)を参照してください。 – Galen

答えて

6

これは、2つのチェックが別々に行われるためです。 True != True != TrueTrue != True and True != Trueと等価であり、オペランドのいずれもがTrueと評価されないので、Falseと評価されます(実際には、短絡のために2番目の比較を評価しません)。

関連documentation

比較は例えば、x < y <= zは(しかしzはまったく評価されませんいずれの場合も、x < yが発見されたときに一度だけ評価されることy除き、x < y and y <= zに相当し、任意に連鎖させることができます偽であること)。

関連する問題