Files
TermNSI/Modularité/DEBUG.md
2024-07-22 15:50:53 +02:00

3.9 KiB
Raw Permalink Blame History

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

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.