3.9 KiB
Débug
Savoir débugger, c'est savoir sauver son code. Comprendre pourquoi il ne fonctionne pas, traquer, chercher la petite erreur, c'est un pan entier du métier de développeur
Introduction
Après avoir étudié la modularité, il est crucial de comprendre comment détecter, analyser et corriger les erreurs dans notre code.
Pour cela, nous allons utiliser le débugging. Il va s'agir de revenir sur nos traces, de vérifier chaque ligne de code. Et dans ce but, nous pourrons bénéficier de l'aide de l'interpréteur Python : celui-ci va nous fournir un message d'erreur qu'on appellera exception.
Les erreurs, également appelées bugs, peuvent se produire à différents niveaux, y compris les erreurs de syntaxe, les erreurs d'exécution et les erreurs logiques.
Types d'erreurs en Python
Erreurs de syntaxe
Ce sont des erreurs dans la structure du code, telles que des parenthèses manquantes ou une mauvaise indentation.
Exemple :
print("Hello, world"
Erreurs d'exécution
Ces erreurs se produisent lorsque le programme est en cours d'exécution et provoquent l'arrêt du programme.
Exemple :
result = 10 / 0
print (result)
Erreurs logiques
Ces erreurs ne provoquent pas l'arrêt du programme, mais produisent des résultats incorrects.
Exemple :
def somme(a, b):
return a - b # L'erreur est ici, il faut utiliser + au lieu de -
Techniques de Débugging
Lecture attentive du message d'erreur
Python fournit des messages d'erreur détaillés qui incluent le type d'erreur et l'emplacement où elle s'est produite. Lisez attentivement ces messages pour comprendre la nature du bug.
Utilisation de print pour le débugging
Ajoutez des instructions print pour afficher la valeur des variables à différentes étapes de l'exécution du programme.
Exemple :
def somme(a, b):
print(f"a = {a}, b = {b}")
return a + b
Utilisation de l'instruction assert
Utilisez assert pour vérifier que certaines conditions sont vraies à différents points de votre programme.
Exemple :
def somme(a, b):
assert isinstance(a, int), "a doit être un entier"
assert isinstance(b, int), "b doit être un entier"
return a + b
Utilisation de l'environnement de débugging intégré (IDE)
Les IDE comme Thonny ou VSCode offrent des outils de débugging intégrés qui permettent de définir des points d'arrêt, d'exécuter le code pas à pas et d'inspecter les valeurs des variables.
Exemple Pratique de Débugging
Prenons un exemple de programme avec une erreur logique et voyons comment utiliser les techniques de débugging pour corriger cette erreur.
Programme avec une erreur :
def moyenne(liste):
somme = 0
for valeur in liste:
somme += valeur
return somme / len(liste)
notes = [15, 18, 12, 9]
print("La moyenne des notes est :", moyenne(notes))
Anecdote historique
Le saviez vous ? Contrairement aux croyances, ce n'est pas Grace Hopper qui a inventé le terme bug, car celui ci était déjà utilisé pour décrire des problèmes de radar durant la seconde guerre mondiale.
Néanmoins, la postérité aura attribué ce mot à la developpeuse, qui aurait trouvé un insecte dans l'ordinateur de type Mark II.
Auteur : Florian Mathieu, Enzo Frémeaux, Thimothée Decooster.
Licence CC BY NC
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.