ホームページ  >  記事  >  バックエンド開発  >  Python で \'11\' == True の \'1\' が False に評価されるのはなぜですか?

Python で \'11\' == True の \'1\' が False に評価されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 11:38:00635ブラウズ

Why Does '1' in '11' == True Evaluate to False in Python?

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

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