Maison >développement back-end >Tutoriel Python >Comment l'ordre d'évaluation de Python affecte-t-il les affectations de variables multiples ?

Comment l'ordre d'évaluation de Python affecte-t-il les affectations de variables multiples ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-10 06:35:10611parcourir

How Does Python's Evaluation Order Affect Multiple Variable Assignments?

Assignation multiple et ordre d'évaluation en Python dévoilés

En Python, l'affectation multiple offre un moyen pratique d'attribuer des valeurs à plusieurs variables simultanément. Cependant, il est crucial de comprendre l'ordre d'évaluation pour éviter des résultats inattendus.

Considérez l'extrait de code suivant :

>>> x = 1
>>> y = 2
>>> x, y = y, x + y
>>> x
2
>>> y
3

Bien que le résultat puisse sembler intuitif, il diffère de ce à quoi vous pourriez vous attendre. La clé réside dans l'ordre d'évaluation de Python.

Dans une instruction d'affectation, le côté droit est évalué avant de définir les valeurs des variables du côté gauche. Ainsi, dans le code donné :

  • y est évalué en premier, donnant la valeur ham.
  • Ensuite, x y est évalué, ce qui entraîne du spam.
  • Enfin, x se voit attribuer du jambon et y se voit attribuer du spam.

Cet ordre d'évaluation est analogue au suivant étapes :

ham = y
spam = x + y
x = ham
y = spam

Contraste ce comportement avec les affectations distinctes suivantes :

>>> x = 1
>>> y = 2
>>> x = y
>>> y = x + y
>>> x
2
>>> y
4

Ici, x se voit attribuer y, puis y se voit attribuer x plus y. Cela équivaut à :

>>> x = y
>>> y = y + y

Comprendre l'ordre d'évaluation est essentiel pour les devoirs simples et multiples. En considérant l'ordre dans lequel les expressions sont évaluées, vous pouvez anticiper les résultats et éviter d'éventuels pièges.

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