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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 04:23:02934parcourir

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

Fausse évaluation de (1 sur [1,0] == Vrai)

Contrairement à un langage de programmation typique, Python évalue les expressions en utilisant la comparaison chaînage des opérateurs. Dans l'expression (1 in [1,0] == True), l'opération n'est pas analysée comme prévu.

L'expression est en fait interprétée comme :

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

Cette évaluation se décompose into :

  • (1 in [1, 0]) : Ceci est évalué à True car 1 est présent dans la liste [1, 0].
  • ([1, 0] == True) : Ceci est évalué à False car [1, 0] est une liste, pas une valeur booléenne.

L'expression globale, donc , est évalué à :

True and False = False

Ce résultat inattendu met en évidence la différence dans l'évaluation des expressions par Python par rapport à d'autres langages. Pour éviter toute confusion, utilisez des parenthèses pour préciser l'ordre d'évaluation souhaité :

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

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