ホームページ >バックエンド開発 >Python チュートリアル >`(1 in [1, 0] == True)` は False と評価されるのに、`(1 in [1, 0]) == True` は True と評価されるのはなぜですか?

`(1 in [1, 0] == True)` は False と評価されるのに、`(1 in [1, 0]) == True` は True と評価されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 19:11:30697ブラウズ

Why Does `(1 in [1, 0] == True)` Evaluate to False While `(1 in [1, 0]) == True` Evaluates to True?

(1 in [1,0]) == True が True であるにもかかわらず、(1 in [1,0] == True) が False と評価されるのはなぜですか?

式 (1 in [1,0] == True) に遭遇すると、(1 in [1,0]) の場合と同様に True と評価されることが期待されるかもしれません。ただし、驚くべきことに False と評価されます。この奇妙な動作を理解するには、Python の比較演算子チェーンを詳しく調べることが重要です。

Python の演算子チェーン メカニズムは、式を次のように解釈します。

<code class="python">(1 in [1, 0]) and ([1, 0] == True)</code>

この式には、カスケードされた論理演算子があり、"そして「演算子が優先されます。」したがって、評価は次のように行われます。

  • (1 in [1, 0]) は True と評価されます。
  • ([1, 0] == True) は False と評価されます。

「and」演算子は結果が True の場合両方のオペランドが True である必要があり、オペランドの 1 つが False であるため、式全体は False と評価されます。

この連鎖動作

  • a < などの他の連鎖比較演算子にも適用されます。 b
  • a == b == c は (a == b) および (b == c) になります

Python でカスケード比較演算子を含む式を正しく解釈し、変更するには、この演算子連鎖メカニズムを理解することが不可欠です。

以上が`(1 in [1, 0] == True)` は False と評価されるのに、`(1 in [1, 0]) == True` は True と評価されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。