Aller au contenu principal

Informatique · Terminale · 2 min de lecture

Déboguer les références et les mutations partagées

Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet, et les combiner dans un même programme ; reconnaître les causes typiques de bugs : problèmes de typage, effets de bord non désirés, débordement d'indice dans un tableau, instruction conditionnelle non exhaustive, mauvais choix d'inégalité, comparaison de flottants, mauvais nommage des variables ; utiliser spécification, assertions et tests pour les anticiper.

Chapitre du programme : Numérique et sciences informatiques (spécialité)

Bloc 1 sur 7 · Comprendre

Comprendre

En Python, un nom désigne un objet. Affecter un second nom au même objet ne crée pas automatiquement une copie. Une mutation change l'objet lui-même ; une réaffectation change l'objet désigné par un nom. Cette distinction est centrale pour comprendre les effets de bord et déboguer les listes.

Bloc 2 sur 7 · Approfondir

Approfondir

Une copie superficielle crée un nouveau conteneur extérieur mais conserve des références vers ses éléments. Si les éléments sont eux-mêmes mutables, leurs mutations peuvent rester visibles depuis les deux conteneurs. Une copie profonde a d'autres règles et n'est pas toujours nécessaire ni souhaitable.

Bloc 3 sur 7 · Exemple

Exemple travaillé

Posez a=[[1],[2]] puis b=a.copy(). Après b[0].append(3), a et b contiennent tous deux [1,3] comme première sous-liste, car celle-ci est partagée. Après b.append([4]), b possède trois éléments tandis que a en possède deux : les conteneurs extérieurs sont distincts. Ce comportement n'est pas celui d'une copie profonde.

Bloc 4 sur 7 · Visualiser

Visualiser le raisonnement

Dessinez deux boîtes extérieures pour a et b, avec des flèches vers les mêmes sous-listes. Une flèche ajoutée au conteneur b ne modifie pas a ; une modification d'une sous-liste partagée est visible depuis les deux chemins.

Continuez sur votre lancée

Vous avez découvert l’essentiel et un exemple. Retrouvez la suite du cours et les points à retenir, puis passez à l’entraînement guidé dans votre compte.

  • Les formules et les repères à retenir
  • Les erreurs fréquentes expliquées
  • Un exercice avec des aides et sa correction

L’accès gratuit comprend les cours et exercices de votre niveau choisi.

Sources

  • https://docs.python.org/3/tutorial/
  • Python Software Foundation, modèle de données : https://docs.python.org/3/reference/datamodel.html
  • Python Software Foundation, module copy : https://docs.python.org/3/library/copy.html

Vous pensez avoir trouvé une erreur dans cette leçon ? Signalez-la par e-mail.

Explorer les autres cours

Accès rapide