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 in [1, 0] == True)` est-il évalué à False alors que `(1 in [1, 0]) == True` est évalué à True ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 19:11:30693parcourir

Why Does `(1 in [1, 0] == True)` Evaluate to False While `(1 in [1, 0]) == True` Evaluates to 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 :

  • (1 in [1, 0]) est évalué à True.
  • ([1, 0] == True) est évalué à False.

É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 :

  • a < b &Lt ; c devient (a < b) et (b < c)
  • a == b == c devient (a == b) et (b == c)

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!

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