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