Types d'erreurs
Syntaxe → Runtime → Logique
Catégories principales des erreurs
Erreurs de syntaxe :
Problèmes de grammaire
Détectées avant l'exécution
Parenthèses manquantes, indentation...
Détectées avant l'exécution
Parenthèses manquantes, indentation...
Erreurs runtime :
Problèmes pendant l'exécution
Division par zéro, index invalide...
Détectées à l'exécution
Division par zéro, index invalide...
Détectées à l'exécution
Erreurs logiques :
Programme s'exécute mais résultat faux
Formule incorrecte, boucle infinie...
Difficiles à détecter
Formule incorrecte, boucle infinie...
Difficiles à détecter
Erreurs courantes Python
# Erreur de syntaxe
print("Bonjour" # Manque une parenthèse fermante
# Erreur runtime
liste = [1, 2, 3]
print(liste[5]) # IndexError: list index out of range
# Erreur logique
def moyenne(a, b):
return a + b / 2 # Devrait être (a + b) / 2
# Erreur de type
resultat = "5" + 3 # TypeError: can't concatenate str and int
Parenthèses/accos non équilibrés
Indentation incorrecte (Python)
Types incompatibles
Bornes de boucles incorrectes
Messages d'erreur
Numéro de ligne indiqué
Type d'erreur précisé
Description du problème
Contexte de l'erreur
Méthodes de détection
Lecture attentive des messages d'erreur
Utilisation d'un IDE avec coloration syntaxique
Tests unitaires pour valider le comportement
Exécution progressive (debuggage)
Revues de code avec des pairs
Erreurs Fréquentes
Erreur 1 :
Confondre = et ==
Erreur 2 :
Boucles infinies par condition incorrecte
Erreur 3 :
Indexation à partir de 0 vs 1
Erreur 4 :
Modification de variables globales accidentellement
Erreur 5 :
Erreurs de conversion de type implicite
Bonnes pratiques
Prévention :
Planifier le code avant de le taper
Utiliser des noms de variables clairs
Commenter les parties complexes
Utiliser des noms de variables clairs
Commenter les parties complexes
Détection :
Tester fréquemment le code
Utiliser des assertions pour vérifier les hypothèses
Effectuer des tests avec des cas limites
Utiliser des assertions pour vérifier les hypothèses
Effectuer des tests avec des cas limites