Chapitre 0 - Entraînement : Révisions Python
Mise au point et bugs
Section intitulée « Mise au point et bugs »Exercice 1 - Trouver et corriger les bugs
Section intitulée « Exercice 1 - Trouver et corriger les bugs »Chaque fonction contient un bug. Identifier le type de bug, l'expliquer et proposer une correction.
a.
def maximum(tab): maxi = 0 for val in tab: if val > maxi: maxi = val return maxib.
def inverser_liste(tab): for i in range(len(tab)): tab[i], tab[len(tab) - 1 - i] = tab[len(tab) - 1 - i], tab[i] return tabc.
def moyenne_notes(notes): somme = 0 for i in range(1, len(notes)): somme += notes[i] return somme / len(notes)Solution
a. Bug logique : maxi = 0 échoue si tous les nombres sont négatifs (ex : maximum([-3, -1, -5]) renvoie 0).
Correction : maxi = tab[0] et commencer la boucle à l'index 1, ou utiliser float('-inf').
b. Bug logique : la boucle parcourt tout le tableau, donc chaque échange est effectué deux fois, annulant l'inversion. Correction : boucler seulement sur la première moitié : range(len(tab) // 2).
c. Bug « off-by-one » : range(1, ...) saute le premier élément notes[0]. Correction : range(len(notes)) ou simplement sum(notes).
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight