2017-01-02 2 views
-2

De Python:Quelle est la logique derrière Python et l'opérateur?

>>> 1 and 2 
2 
>>> 1 and 2 and 3 
3 
>>> 3 and 2 and 1 
1 
>>> 'a' and 'b' 
'b' 

Pourquoi Python renvoie ce résultat? Quelle est la logique de cela quand il s'agit de nombres purs ou de chaînes?

+1

Qu'est-ce qui déroute dans cette logique? –

+0

Vous pouvez également trouver [cette réponse à moi] (http://stackoverflow.com/a/36551857/4014959) utile. –

Répondre

0

Lorsque deux expressions ont un mot clé 'et' entre elles, l'interpréteur vérifie d'abord la première expression. Si la première expression est fausse, elle ne vérifie même pas la seconde. C'est le cas pour tous les langages de programmation. S'il y a plusieurs expressions, cela va de gauche à droite. L'ordre est important car il est recommandé d'écrire des opérations coûteuses en calcul à la fin de l'expression 'et'.

Dans votre premier exemple, python évalue 1 comme vrai et passe à l'expression suivante et renvoie le résultat de la dernière expression. Si vous avez eu un cas quelque chose comme

'a' and False and 'b' 

il retournerait False, parce que l'interprète s'arrête après une déclaration qui est faux.