PaliSkill
Python intermédiaire

Leçon 4 / 10 — Chapitre 8: Mise en pratique : gestion de stock

Mettre à jour la quantité d'un produit

Quatrième étape : modifier la quantité en stock d'un produit existant, que ce soit pour une vente (quantité négative) ou un réapprovisionnement (quantité positive), avec une exception personnalisée pour refuser un stock négatif — vue au cinquième chapitre.

class StockInsuffisantError(Exception):
    pass

def mettre_a_jour_stock(inventaire, nom, variation):
    for produit in inventaire:
        if produit["nom"].lower() == nom.lower():
            if produit["stock"] + variation < 0:
                raise StockInsuffisantError(f"Stock insuffisant pour {produit['nom']}")
            produit["stock"] = produit["stock"] + variation
            return produit["stock"]
    raise KeyError(nom)

inventaire = [{"nom": "riz", "prix": 5, "stock": 20}]
nouveau_stock = mettre_a_jour_stock(inventaire, "riz", -5)
print(nouveau_stock)

Ce code affiche 15 : mettre_a_jour_stock retrouve le produit par nom (insensible à la casse), vérifie que la variation ne fait pas passer le stock sous zéro, puis l'applique.

try:
    mettre_a_jour_stock(inventaire, "riz", -100)
except StockInsuffisantError as e:
    print("Erreur :", e)
except KeyError as e:
    print("Produit inconnu :", e)

Ce code affiche Erreur : Stock insuffisant pour riz : try/except (vu au cinquième chapitre) intercepte l'exception personnalisée levée par la fonction.

À vous de jouer : appelez mettre_a_jour_stock avec une variation positive (réapprovisionnement), puis avec une variation qui ferait passer le stock sous zéro, et vérifiez que l'erreur est bien interceptée.

🔒

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