Python: 'in' および比較演算子との演算子の優先順位の混同
Python では、シーケンスのメンバーシップと等価性を比較すると、次の理由により予期しない結果が生じる可能性があります。 「in」演算子と比較演算子の優先順位が同じになります。括弧のない式でこれらの演算子が見つかった場合、これらの演算子は左から右に評価されます。
例:
'1' in '11' == True # Evaluates to False
この式は次のように解釈されます:
('1' in '11') and ('11' == True)
「11」は True に等しくないため、式全体が False と評価されます。意図した結果 (True) を達成するには、かっこが必要です:
'1' in '11' == True # Evaluates to True
ただし、反対側のオペランドをかっこで囲んだ場合:
'1' in ('11' == True) # TypeError
'11' であるため、TypeError が発生します。 True と等しくなります。これはブール値であるため、反復可能ではありません。このエラーを回避するには、反復可能なオブジェクトで 'in' 演算子が使用されていることを確認してください。
期待どおりに動作するコードを作成するには、Python での演算子の優先順位と連鎖を理解することが重要です。優先順位が等しい演算子は左から右に評価され、連鎖により 1 行で複数の評価を実行できます。演算子の優先順位と連鎖を慎重に考慮することで、予期しない結果を回避し、より効率的なコードを作成できます。
以上がPython で \'11\' == True の \'1\' が False に評価されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。