PaliSkill
Python intermédiaire

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_inventaire et sauvegarder_inventaire encapsulent json.load()/json.dump() dans des fonctions réutilisables, avec un chemin par défaut (vus dans ce chapitre).
  • mettre_a_jour_stock applique une vente (variation négative) au produit "riz", en le retrouvant par nom insensible à la casse.
  • valeur_totale utilise ici une expression génératricesum(... 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