Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Traquer un bogue

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

35 minutes

Le total qui ne tombe pas juste

Tu additionnes tes courses : 4 euros, 6 euros, 5 euros. Le programme répond 4.

Aucun message rouge. Aucune erreur. Le programme tourne tranquillement, et il se trompe.

C'est le pire cas : personne ne te dit où chercher. Dans cette leçon, tu apprends à mener l'enquête.

Mots-clés

MotCe que ça veut direExemple
BogueUn défaut dans un programme. Il peut donner une erreur ou une réponse fausse.Un total de 4 au lieu de 15
ReproduireRetrouver à coup sûr le bogue, avec les mêmes valeurs.somme([4, 6, 5])
HypothèseUne idée sur la cause du bogue, qu'on va vérifier.La boucle s'arrête trop tôt
Print de contrôleUn print qu'on ajoute pour voir ce que vaut une variable.print("total =", total)
Pas à pasSuivre le programme une ligne après l'autre, comme le ferait Python.Un tableau de suivi
Jeu d'essaiDes valeurs choisies pour tester, avec la réponse qu'on attend.[4, 6, 5] doit rendre 15

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une méthode en cinq temps

Un bon détective ne devine pas au hasard. Il suit cinq temps.

Un : reproduire le bogue. Deux : se demander ce que le programme devrait donner. Trois : faire une hypothèse. Quatre : la vérifier avec un print de contrôle. Cinq : corriger, puis relancer.

À toi : le total de 4

Code: python
def somme(prix):
    total = 0
    for p in prix:
        total = total + p
        return total


print(somme([4, 6, 5]))

# Le résultat devrait être 15. Il est faux, et Python ne dit rien.
# Ajoute print("p =", p, "total =", total) dans la boucle. Combien de tours vois-tu ?

Exemple travaillé : somme avec le bogue

Tourptotal après l'additionCe qui se passe
144return rend 4 et la fonction s'arrête
2--Ce tour n'a jamais lieu
3--Ce tour n'a jamais lieu

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Exemple travaillé : la même fonction corrigée

Tourptotal après l'additionCe qui se passe
144la boucle continue
2610la boucle continue
3515la boucle est finie
Après-15return rend 15

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À toi : un print de contrôle

Code: python
def somme(prix):
    total = 0
    for p in prix:
        total = total + p
        print("p =", p, "total =", total)
    return total


print(somme([4, 6, 5]))

# Maintenant return est après la boucle. Vois-tu trois tours ?
# Efface les print de contrôle quand tu as fini.

Contrôle rapide

À toi de jouer

Contrôle rapide

3 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

Le bogue du premier élément

Un autre bogue très courant : la boucle commence trop tard. Avec range(1, len(liste)), l'indice 0 est sauté.

On ne voit rien : pas de message, juste un compte trop petit. Un print de l'indice montre tout de suite le trou.

La leçon continue

9 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.