Python (école d'ingénieur) · Chapitre 5 · Exercice
Échange de variables et unpacking
Listes, tuples et dictionnaires
Énoncé
Sans utiliser de variable temporaire, échanger les valeurs de trois variables a, b, c de sorte que a reçoive b, b reçoive c, et c reçoive a (rotation circulaire).
Corrigé
L'échange s'effectue directement en Python de la manière suivante :
# État initial
a, b, c = 1, 2, 3
print(f"Avant : a={a}, b={b}, c={c}")
# Rotation : a <- b, b <- c, c <- a
a, b, c = b, c, a
print(f"Après : a={a}, b={b}, c={c}")
# Rotation inverse
a, b, c = c, a, b
print(f"Inverse : a={a}, b={b}, c={c}")
Sortie obtenue :
Avant : a=1, b=2, c=3
Après : a=2, b=3, c=1
Inverse : a=1, b=2, c=3
Explication : Lors de l'affectation multiple, Python évalue d'abord le membre de droite en créant un tuple temporaire en mémoire. Ensuite, il décompresse (unpacking) ce tuple dans les variables de gauche de manière atomique, évitant le besoin d'une variable tierce.
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.