Maison >développement back-end >Tutoriel Python >Pourquoi `(1 in [1,0] == True)` est-il évalué à False en Python ?

Pourquoi `(1 in [1,0] == True)` est-il évalué à False en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 18:17:30903parcourir

Why Does `(1 in [1,0] == True)` Evaluate to False in Python?

Dévoilé : Le mystère du pourquoi '(1 sur [1,0] == Vrai)' est évalué à Faux

L'expression ' (1 in [1,0] == True)' en Python peut initialement sembler contre-intuitif, évaluant False alors qu'on pourrait s'attendre à ce qu'il soit True. Pour percer ce mystère, nous devons nous plonger dans le fonctionnement interne du processus d'évaluation de Python.

Curieusement, Python interprète cette expression comme une chaîne de comparaisons plutôt que comme une simple vérification par rapport à une valeur booléenne. La véritable structure de l'expression est révélée comme :

(1 in [1,0]) and ([1,0] == True)

Cette chaîne de comparaisons est évaluée à False car la première expression, '(1 in [1,0])', renvoie True et la deuxième expression , '([1,0] == True)', est évalué à False.

Ce phénomène d'enchaînement de comparaisons se produit également dans d'autres expressions, telles que 'a < b &Lt ; c', qui se traduit par :

(a < b) and (b < c)

sans évaluation redondante de 'b' deux fois.

Il est crucial de comprendre cet aspect du comportement d'évaluation de Python pour éviter des résultats inattendus lorsqu'il s'agit de problèmes complexes. expressions impliquant des comparaisons.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn