Python の演算子の優先順位を理解する: 'in' と比較
Python では、式を評価する際に演算の順序を決定することが重要になることがあります。正しく。演算子の優先順位によって優先順位が指定され、優先順位の高い演算子が最初に評価されます。
次の式を考えてみましょう。
<code class="python">'1' in '11' ('1' in '11') == True</code>
両方の式が True と評価され、「in」演算子であることを示します。比較演算子「==」よりも優先順位が低くなります。ただし、「in」式の周囲にかっこを置くと、評価順序が変更されます。
<code class="python">'1' in ('11' == True)</code>
この式では TypeError が発生し、何かが正しくないことを示します。その理由を理解するために、Python の演算子の優先順位を調べてみましょう。
Python のドキュメントによると、「in」と「==」の優先順位は同じです。したがって、Python はそれらを左から右に評価します。この場合、Python は最初に「11」の「1」を評価し、結果は True になります。ただし、「== True」部分はブール式として評価され、ブール値は反復処理できないため、TypeError が発生します。
これを解決するには、チェーンを利用できます。チェーンを使用すると、同じ優先順位を持つ複数の演算子をグループ化し、左から右に評価できます。次のように括弧を追加すると、「in」演算子が最初に評価されるように強制できます。
<code class="python">'1' in '11' == True</code>
この式は False と評価され、これは期待どおりです。括弧により、「in」演算子が最初に評価され、結果が True になります。これは、「==」式で True と比較され、False が返されます。
以上がPython で「1 in \'11\' == True\」が TypeError を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。