Une erreur est signalée à l'endroit où elle éclate. C'est rarement l'endroit où elle est née, et c'est toute la difficulté.
Le programme
lire_csv ouvre le fichier, prend la première ligne comme noms de
colonnes, puis construit un dictionnaire pour chaque ligne
du fichier sans sauter cette première ligne
additionner parcourt cette liste et appelle convertir sur chaque élément
convertir rend float(ligne["montant"])
Le fichier contient quatre lignes : un en-tête nom;montant, puis trois lignes de données.
L'exécution s'arrête sur ValueError: could not convert string to float: 'montant'.
Objectif
Nommer la fonction où l'erreur est signalée, puis celle qui a fabriqué la donnée fautive. Dire si une correction posée dans convertir retire la cause. Donner enfin le nombre de lignes de données réellement présentes dans le fichier.
Pièges
Faire taire un message à l'endroit où il apparaît ne corrige pas une donnée fabriquée plus tôt : le résultat resterait faux, sans plus rien pour le signaler.