Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Repérer et corriger les valeurs fausses

La leçon entière est à lire ici. Créez un compte gratuit pour lancer ses commandes dans un laboratoire et passer ses quiz et ses exercices.

Leçon de 45 minAucune commande

Un chiffre d'affaires impossible

Vous travaillez pour une société de livraison à Lyon. Le tableau de bord affiche un chiffre d'affaires négatif pour mardi.

Personne n'a rendu d'argent ce jour-là. Le problème vient des données : une case vide, un signe moins tapé par erreur, une ville écrite de trois façons.

Avant de calculer, on nettoie.

À la fin de cette leçon

Remarque

Je peux repérer et corriger les valeurs manquantes et fausses.

Mots-clés

MotCe que ça veut direExemple
Valeur manquanteune case vide ou absente
Valeur fausseune valeur mal écrite ou impossible-15,00
Nettoyercorriger ou écarter les mauvaises valeurs
Écarterlaisser une ligne de côté, sans la supprimer de la source
Nonela valeur Python qui veut dire « rien »

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Repérer avant de corriger

Une valeur manquante est une case vide. Une valeur fausse existe, mais elle est mal écrite ou impossible.

Dans un export, on cherche surtout trois choses : les cases vides, les espaces en trop et les valeurs hors limites. Une livraison ne coûte jamais moins de zéro euro.

On commence par repérer et compter. On ne corrige qu'ensuite.

Signaler les lignes à problème

Code: python
# Un export de livraisons, tel qu'il arrive.
livraisons = [
    {"numero": 1, "ville": "Lyon", "montant": "18,40"},
    {"numero": 2, "ville": " lyon ", "montant": "22,00"},
    {"numero": 3, "ville": "Marseille", "montant": ""},
    {"numero": 4, "ville": "Toulouse", "montant": "-15,00"},
    {"numero": 5, "ville": "", "montant": "9,90"},
]

# On repère sans rien corriger : on affiche seulement les lignes à problème.
for ligne in livraisons:
    if ligne["montant"] == "":
        print("Montant manquant, ligne", ligne["numero"])
    if ligne["ville"] == "":
        print("Ville manquante, ligne", ligne["numero"])
    if ligne["ville"] != ligne["ville"].strip():
        print("Espaces en trop, ligne", ligne["numero"])

# Ajoutez un test qui signale un montant qui commence par "-".

Cinq lignes, cinq diagnostics

LigneVilleMontantProblème
1Lyon18,40aucun
2« lyon »22,00espaces et minuscule
3Marseille(vide)montant manquant
4Toulouse-15,00montant impossible
5(vide)9,90ville manquante

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une règle écrite corrige chaque cas

Chaque problème reçoit une règle, toujours la même.

strip() enlève les espaces au début et à la fin. title() met une majuscule à chaque mot. replace(",", ".") change la virgule française en point, car Python lit 12.5 et pas 12,5.

Une valeur qu'on ne peut pas réparer est écartée et comptée. Le nombre d'écarts va dans votre compte rendu.

Nettoyer des montants et une ville

Code: python
brut = ["18,40", " 22,00 ", "", "-15,00", "9,90"]

propres = []
ecartes = 0
for texte in brut:
    texte = texte.strip()          # enlève les espaces au début et à la fin
    if texte == "":
        ecartes = ecartes + 1      # manquant : on l'écarte et on le compte
    else:
        montant = float(texte.replace(",", "."))   # Python veut un point
        if montant < 0:
            ecartes = ecartes + 1  # impossible pour une livraison
        else:
            propres.append(montant)

print("Montants propres :", propres)
print("Lignes écartées :", ecartes)

villes = ["Lyon", "saint-étienne", "MARSEILLE"]
for ville in villes:
    print(ville.strip().title())

# Ajoutez " lyon " à la liste villes, puis exécutez.

Une erreur fréquente

Attention

Beaucoup pensent qu'une case vide vaut zéro. C'est faux. Un zéro dit « gratuit », une case vide dit « on ne sait pas ». Remplacer le vide par 0 fait baisser la moyenne sans raison. Écartez la ligne, ou gardez None.

À vous : lire un montant

L'équipe finance reçoit chaque soir l'export des livraisons. Écrivez la fonction qui lit un montant comme un vrai export français l'écrit. Des tests cachés vérifient votre réponse.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.