Adloun

Python (école d'ingénieur) · Chapitre 1 · Exercice

Permutation de variables

Bases de Python, variables et types

Énoncé

Proposer un algorithme permettant de permuter les contenus de deux variables a et b sans utiliser l'affectation multiple de Python (a, b = b, a). Expliquer pourquoi la succession d'instructions suivantes est incorrecte :

b = a
a = b

Corrigé

Pour échanger les valeurs, la succession séquentielle b = a puis a = b échoue. En effet :

  • b = a : lie le nom b à l'objet actuellement pointé par a. La valeur initiale de b est perdue. Désormais, a et b pointent vers le même objet en mémoire.
  • a = b : lie le nom a à l'objet pointé par b. Comme b pointe déjà sur l'ancienne valeur de a, cette instruction n'a aucun effet. Les deux variables finissent par posséder la même valeur, à savoir l'ancienne valeur de a.

Pour permuter correctement de manière séquentielle, il est nécessaire d'introduire une variable temporaire pour conserver l'adresse de l'objet initialement lié à a avant qu'il ne soit écrasé :

temp = a
a = b
b = temp

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 →