Maison >développement back-end >Tutoriel Python >Comment comparer efficacement plusieurs variables Python à une seule valeur entière ?
Comparaison de plusieurs variables à une valeur unique
Description du problème :
Recherche d'une méthode dans Python pour vérifier si plusieurs variables sont égales à un entier particulier et produire ensuite une chaîne composée de trois lettres. Par exemple, étant donné :
x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0: mylist.append("c") if x or y or z == 1: mylist.append("d") if x or y or z == 2: mylist.append("e") if x or y or z == 3: mylist.append("f")
... le résultat attendu serait une liste de ["c", "d", "f"].
Réponse :
Le code fourni comprend mal les expressions booléennes en Python. L'opérateur ou examine chaque côté séparément, ce qui donne l'évaluation suivante :
(x == False or y == False) or (y == False or z == False)
Pour vérifier qu'au moins une variable est égale à l'entier souhaité, utilisez l'expression suivante :
if 1 in (x, y, z): ....
Alternativement , pour une amélioration efficacité :
if 1 in {x, y, z}: ....
Explication :
Les opérateurs ont la priorité en Python, et l'opérateur ou a une priorité inférieure à l'égalité (=). C’est donc l’égalité qui est évaluée en premier. De plus, l'opérateur ou renvoie la première valeur véridique rencontrée. Cela signifie que la séquence de code :
x or y or z == 0
renverrait False si x n'était pas 0, même si y ou z l'était. Pour évaluer correctement plusieurs variables par rapport à une seule valeur, utilisez une expression telle que :
x == 1 or y == 1 or z == 1
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!