Maison >développement back-end >Tutoriel Python >Pourquoi `(1 in [1, 0] == True)` est-il évalué à False alors que `(1 in [1, 0]) == True` est évalué à True ?
Pourquoi (1 sur [1,0] == Vrai) est-il évalué comme faux, alors que (1 sur [1,0]) == Vrai étant vrai ?
Lorsque l'on rencontre l'expression (1 in [1,0] == True), on pourrait s'attendre à ce qu'elle soit évaluée à True comme dans le cas de (1 in [1,0]). Cependant, étonnamment, il est évalué à False. Pour comprendre ce comportement curieux, il est crucial de se plonger dans le chaînage des opérateurs de comparaison de Python.
Le mécanisme de chaînage des opérateurs de Python interprète l'expression comme :
<code class="python">(1 in [1, 0]) and ([1, 0] == True)</code>
Cette expression a des opérateurs logiques en cascade, avec le " et" opérateur ayant priorité. Par conséquent, l'évaluation se déroule comme suit :
Étant donné que l'opérateur « et » requiert que les deux opérandes soient vrais pour un résultat vrai, et que l'un des opérandes est faux, l'expression entière est évaluée à faux.
Ce comportement de chaînage s'applique également à d'autres opérateurs de comparaison chaînés, tels que :
Comprendre ce mécanisme de chaînage d'opérateurs est essentiel pour interpréter et modifier correctement les expressions impliquant des opérateurs de comparaison en cascade en Python.
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!