Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →