Lire une erreur + le réflexe Claude
TypeError, KeyError, IndentationError : apprendre à lire une traceback de bas en haut, puis déléguer le fix.
🧠 Concept — Une erreur n'est pas un échec, c'est un message
Quand un script plante, Python affiche une traceback : le chemin qui a mené à l'erreur. Règle d'or absolue : on la lit DE BAS EN HAUT.
- Dernière ligne : le type d'erreur et son message. C'est 80 % du diagnostic.
- Juste au-dessus : la ligne de code exacte qui a planté, avec son numéro.
- Le reste : le chemin d'appels pour y arriver (utile seulement si le bas ne suffit pas).
Voyons les 3 erreurs que tu croiseras le plus souvent — provoquées exprès pour que tu les reconnaisses.
Erreur n°1 : TypeError — mélanger texte et nombre
kwh = "42.5" # piège : c'est du TEXTE (guillemets), pas un nombre total = kwh + 10 # Traceback (most recent call last): # File "analyse.py", line 2, in <module> # total = kwh + 10 # TypeError: can only concatenate str (not "int") to str # # Lecture de bas en haut : "je ne peux pas additionner du texte et un # nombre" → ligne 2 → kwh est une chaîne. Fix : total = float(kwh) + 10 # Cas réel : les CSV mal exportés livrent les kWh en texte. Classique.
Erreur n°2 : KeyError — la clé n'existe pas
session = {"station": "Vélizy 2", "kwh": 18.2}
print(session["duree_min"])
# Traceback (most recent call last):
# File "analyse.py", line 2, in <module>
# print(session["duree_min"])
# KeyError: 'duree_min'
#
# Lecture : la clé 'duree_min' n'existe pas dans ce dictionnaire.
# Soit une faute de frappe ("duree_minutes" ?), soit la donnée manque
# vraiment (session tronquée dans l'export). Vérifie : print(session.keys())Erreur n°3 : IndentationError — le décalage cassé
for s in sessions: print(s["station"]) # File "analyse.py", line 2 # print(s["station"]) # ^ # IndentationError: expected an indented block after 'for' statement on line 1 # # Lecture : après un for (ou un if, ou un def), Python EXIGE un bloc # décalé. Arrive tout le temps en copiant-collant du code depuis Slack # ou Notion : les espaces se perdent en route.
💡 Réflexe pro — Le réflexe Claude : colle tout, demande « explique et corrige »
Tu n'as PAS à débugger seul. Le réflexe pro en 3 gestes :
- Copie le code complet (pas juste la ligne suspecte) ;
- Copie la traceback complète (pas juste la dernière ligne) ;
- Colle les deux à Claude avec : « Explique-moi cette erreur simplement, puis corrige le script. Dis-moi ce que tu as changé et pourquoi. »
Le « dis-moi ce que tu as changé » est crucial : c'est comme ça que tu apprends au lieu de juste consommer le fix. Au troisième KeyError, tu le corrigeras toi-même avant Claude.
🎮 Mini-jeu : associe chaque symptôme à son erreur
Un collègue te lit la dernière ligne de sa traceback. Range chaque symptôme sous le bon type d'erreur — c'est le diagnostic express que tu feras en vrai.
🛠️ À toi de jouer — 🛠️ Provoque, lis, délègue
Le meilleur moyen de dédramatiser les erreurs : en provoquer une exprès et la résoudre avec la méthode. Lance le prompt ci-dessous.
Écris un court script Python d'analyse de sessions de charge Electra qui contient UNE erreur volontaire (au choix : TypeError, KeyError ou IndentationError), sans me dire laquelle. Exécute-le et montre-moi la traceback complète. Attends que je te propose mon diagnostic (type d'erreur + ligne + cause) en lisant la traceback de bas en haut. Ensuite seulement, valide ou corrige mon diagnostic, puis répare le script en m'expliquant le fix.
Checklist de validation