Je suis un peu confus avec les résultats obtenus avec les opérateurs logiques de Python. Je suis débutant et étudie avec l’utilisation de quelques livres, mais ils n’expliquent pas autant de détails que je le voudrais.
voici mon propre code:
five = 5
two = 2
print five and two
>> 2
Il semble ne produire que les deux variables.
five = 5
two = 2
zero = 0
print five and two and zero
J'ai donc ajouté un autre entier variable. Ensuite, j'ai imprimé et obtenu le résultat suivant:
>> 0
Que se passe-t-il avec Python en arrière-plan? Pourquoi la sortie n’est-elle pas quelque chose comme 7 ou 5, 2.
Les opérateurs booléens Python renvoient la dernière valeur évaluée, pas True/False. Les docs ont une bonne explication à ce sujet:
L'expression
x and y
évalue d'abordx
; six
estfalse
, sa valeur est renvoyée; sinon,y
est évalué et la valeur résultante est renvoyée.
Comme note de côté: (je n'ai pas assez de représentants pour un commentaire) L'opérateur AND n'est pas nécessaire pour imprimer plusieurs variables. Vous pouvez simplement séparer les noms de variables par des virgules, telles que print five, two
au lieu de print five AND two
. Vous pouvez également utiliser des échappements pour ajouter des variables à une ligne d'impression, telles que print "the var five is equal to: %s" %five
. Plus d'informations à ce sujet ici: http://docs.python.org/2/library/re.html#simulating-scanf
Comme d’autres l’ont dit, AND est un opérateur logique et permet de chaîner plusieurs conditions, telles que
if (five == 5) AND (two == 2):
print five, two
Les opérateurs booléens And renverront la première valeur 5
si l'expression évaluée est false
et la deuxième valeur 2
si l'expression évaluée est true
. Étant donné que 5
et 2
sont des valeurs réelles, non fausses et non nulles, l'expression est évaluée à true.
Si vous voulez imprimer les deux variables, vous pouvez les concaténer en une chaîne et les imprimer.
five = 5
two = 2
print five + " and " + two
Ou pour imprimer leur somme, vous pouvez utiliser
print five + two
Ce document explique comment utiliser les opérateurs booléens logiques.
Cette AND
en Python est un équivalent du &&
en Java par exemple. Cela ne signifie pas le et en anglais. La AND
est un opérateur logique. Supposons que cinq correspond à 5 et deux à 2. Selon la documentation Python: Les expressions x et y évaluent d'abord x; si x est faux, sa valeur est renvoyée; sinon, y est évalué et la valeur résultante est renvoyée. Fondamentalement, il évalue le dernier entier de votre cas, ce qui est vrai.
if (five and two):
... print "True"
... else:
... print "False"
AND est un opérateur logique, destiné à tester la logique pour un cas spécifique, et non un opérateur arithmétique. Si vous voulez obtenir des résultats tels que 7 pour cinq et deux, vous devriez plutôt utiliser "+", ce qui signifie ajouter deux entiers. Voir ci-dessous:
>>> five = 5
>>> two = 2
>>> print five + two
7
Essayez 0
et 9
.
Le résultat est 0
car la valeur de 0
est false. L'opérande à gauche de l'opérateur and
est False, ainsi l'expression entière est False et renvoie 0
En Python, toute valeur entière non nulle est vraie; zéro est faux.
Les valeurs de l'OP sont toutes deux non nulles.
L’opérateur AND teste de gauche à droite,
with et, si toutes les valeurs sont True, retourne la dernière valeur évaluée . Si une valeur est fausse, retourne la première.
Puisque les deux sont non nuls, les deux sont vrais, donc la dernière valeur est retournée