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

Patricia Arquette
リリース: 2024-10-30 11:38:00
オリジナル
706 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート