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!