Programmer en Python en 2nde

Affectations simultanées

Affectations "simultanées"

En langage Python, on peut affecter plusieurs variables avec un seul symbole = comme ci-dessous :


a, b, c = 2, 3, 4
print("a = ", a)
print("b = ", b)
print("c = ", c)

On obtient :

a =  2
b =  3
c =  4
  • Complément Plus tard !

Le type tuple se cache en fait derrière cela. On peut lire le code a, b, c = 1, 2, 3 comme : (a, b, c) = (1, 2, 3). La proximité de cette syntaxe avec la notation des n-uplets en mathématique rend ceci parfaitement lisible.

On verra que cette même "astuce" permet qu'une fonction donne l'impression de renvoyer facilement plusieurs valeurs.

Échange de valeurs

Dans la plupart des langages, pour échanger les valeurs de deux variables, on doit passer par une valeur intermédaire (pour échanger le contenu de deux verres pleins, on doit disposer d'un verre vide).


# valeurs initiales de a et b :
a = 2 # verre de jus d'orange
b = 3 # verre de jus de pomme

# échange des valeurs de a et b :
c = a # on vide le jus d'orange dans le verre vide c
a = b # on peut maintenant verser le jus de pomme dans le verre a   
b = c # et le verre b reçoit maintenant le jus d'orange 

# affichage des valeurs :
print("a = ", a)
print("b = ", b)

On obtient :

a =  3
b =  2

Réaliser cet échange sans variable intermédiaire.

  • Une solution

# valeurs initiales de a et b :
a = 2
b = 3

# échange des valeurs :
a, b = b, a

# affichage des valeurs :
print("a = ", a)
print("b = ", b)