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.