Bases & algorithmique · 5 mondes · 15 étapes
Bases de la programmation
La grammaire du code, en Python, directement dans le navigateur.
Progression
0 %
0/15 étapes terminées
Avancé · 10 min de lecture
Erreurs et qualité du code
Lire un message d'erreur, déboguer, écrire pour les autres
1Définition
Une erreur Python n'est pas une punition, c'est un rapport : le type d'erreur, le message et la ligne. Savoir le lire, isoler le problème et écrire du code lisible constitue l'essentiel du métier au quotidien.
2Principes fondamentaux
01
Lire de bas en haut
La dernière ligne du traceback donne le type et le message ; juste au-dessus, la ligne fautive de ton code.
02
Réduire avant de corriger
Isole le plus petit code qui reproduit le problème : souvent, la cause apparaît d'elle-même.
03
Afficher pour comprendre
Un print bien placé (ou un débogueur) montre les valeurs réelles, rarement celles qu'on imagine.
04
Écrire pour le prochain lecteur
Noms explicites, fonctions courtes, quatre espaces, pas de code mort : les conventions PEP 8 existent pour ça.
3Exemples pratiques
Anatomie d'une erreur
1Traceback (most recent call last):2 File "main.py", line 4, in <module>3 print(total / len(notes))4ZeroDivisionError: division by zeroType : ZeroDivisionError. Cause : notes est vide. Correction : tester la liste avant de diviser.
Se protéger et vérifier
1def moyenne(notes):2 if not notes:3 return 04 return sum(notes) / len(notes)5 6assert moyenne([10, 20]) == 157assert moyenne([]) == 08print("Tests OK")Deux assert valent mieux qu'un long commentaire : ils échouent bruyamment si le comportement change.
4Erreurs courantes
Masquer l'erreur
À éviter
try: traiter()except: passÀ faire
try: traiter()except ValueError as e: print("Donnée invalide :", e)Pourquoi : Un except nu avale tout, y compris les bugs que tu cherches.
Corriger au hasard
À éviter
# changer des lignes jusqu'à ce que ça marcheÀ faire
# lire l'erreur, formuler une hypothèse, la testerPourquoi : Sans hypothèse, une correction qui « marche » cache souvent le vrai problème.
5Subtilités à connaître
- ◆
try / exceptsert aux erreurs attendues (fichier absent, saisie invalide), pas à cacher des bugs de logique. - ◆Un environnement virtuel (
python -m venv .venv) évite les conflits de bibliothèques entre projets. - ◆Un formateur automatique (Black, Ruff) met fin aux débats de style et rend les diffs lisibles.
6Techniques d'expert
Débogueur intégré
breakpoint() ouvre une console à l'endroit exact du code : tu inspectes les variables au lieu de les devinerr.
def moyenne(notes): breakpoint() return sum(notes) / len(notes)Messages d'erreur utiles
Lève tes propres erreurs explicites : raise ValueError("niveau doit être positif"). Le futur toi te remerciera.
Petites fonctions, tests faciles
Une fonction sans effet de bord se teste en une ligne. C'est la porte d'entrée vers les tests automatisés.
7Sur le terrain
- Les équipes exécutent formateur, linter et tests à chaque proposition de modification.
- Les messages d'erreur soignés réduisent drastiquement le temps de support.
- Les revues de code portent surtout sur la lisibilité : c'est elle qui coûte le plus cher à long terme.
8Vérifie ta compréhension
Question 1/3
Score 0
Où lire le type d'erreur dans un traceback ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.