Python で「1 in \'11\' == True\」が TypeError を返すのはなぜですか?

Susan Sarandon
リリース: 2024-11-01 14:33:29
オリジナル
991 人が閲覧しました

Why Does

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!