Leçon 10 / 10 — Chapitre 8: Mise en pratique : gestion de stock
Cas pratique : un mini-programme de gestion de stock complet
Cette dernière leçon assemble toutes les fonctions du chapitre en un seul petit programme cohérent, du chargement à la sauvegarde.
import json
def charger_inventaire(chemin="inventaire.json"):
with open(chemin) as fichier:
return json.load(fichier)
def sauvegarder_inventaire(inventaire, chemin="inventaire.json"):
with open(chemin, "w") as fichier:
json.dump(inventaire, fichier)
def mettre_a_jour_stock(inventaire, nom, variation):
for produit in inventaire:
if produit["nom"].lower() == nom.lower():
produit["stock"] = produit["stock"] + variation
return produit["stock"]
raise KeyError(nom)
def valeur_totale(inventaire):
return sum(p["prix"] * p["stock"] for p in inventaire)
inventaire = charger_inventaire()
mettre_a_jour_stock(inventaire, "riz", -5)
sauvegarder_inventaire(inventaire)
print(f"Valeur totale apres vente : {valeur_totale(inventaire):.2f} $")
Ce que fait chaque partie :
charger_inventaireetsauvegarder_inventaireencapsulentjson.load()/json.dump()dans des fonctions réutilisables, avec uncheminpar défaut (vus dans ce chapitre).mettre_a_jour_stockapplique une vente (variationnégative) au produit"riz", en le retrouvant par nom insensible à la casse.valeur_totaleutilise ici une expression génératrice —sum(... for p in inventaire), une variante compacte de compréhension directement passée àsum(), sans construire de liste intermédiaire.
Ce programme charge l'inventaire, vend 5 unités de riz, sauvegarde le résultat dans le fichier, puis affiche la nouvelle valeur totale — un cycle complet, prêt à être relancé à l'exécution suivante avec l'inventaire mis à jour.
À vous de jouer : ajoutez un appel à charger_inventaire juste après la sauvegarde, dans une nouvelle variable, et vérifiez que le stock de riz rechargé reflète bien la vente.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 85 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès