Test de l'égalité de plusieurs variables : une solution complète
Cette requête soulève un défi intrigant : comparer plusieurs variables à un entier spécifique et générer un chaîne de sortie basée sur les résultats.
Pour résoudre ce problème, il faut comprendre que les expressions booléennes en Python ne se comportent pas comme Phrases anglaises. Par exemple, le fragment de code fourni interprète chaque côté de l'opérateur ou comme une expression distincte, plutôt que d'évaluer toutes les variables par rapport à la même comparaison.
Pour résoudre ce problème, la syntaxe correcte est :
if x == 1 or y == 1 or z == 1:
Cela garantit que la comparaison est effectuée indépendamment pour chaque variable.
De plus, on peut condenser ce code à l'aide d'un test de confinement contre un tuple :
if 1 in (x, y, z):
Ou, plus efficacement encore, un ensemble peut être utilisé pour son test d'adhésion à coût constant :
if 1 in {x, y, z}:
Ce code amélioré profite du fait qu'un ensemble Le test d'appartenance a un temps d'exécution fixe, quel que soit l'opérande de gauche.
En substance, l'opérateur or sépare ses arguments, en évaluant chacun comme une expression booléenne. Cependant, même évalué comme une expression unique, le résultat ne correspondrait pas au comportement souhaité. En effet, l'opérateur or renvoie le premier argument qui est « vrai » (une valeur autre que False, un 0 numérique ou un conteneur vide). Par conséquent, seule la première valeur vraie de la séquence serait prise en compte, ce qui pourrait conduire à des résultats incorrects.
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!