Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
E-commerce #3 : Inventaire
L'inventaire gere la liste de tous les produits disponibles. C'est le catalogue du magasin.
Il faut pouvoir chercher un produit par son nom, filtrer ceux qui sont en stock, et reapprovisionner quand le stock est bas.
Une astuce pour chercher dans une liste : parcours-la avec une boucle et retourne le premier élément qui correspond. Si rien ne correspond, retourne None.
def trouver(self, nom): for p in self.produits: if p.nom == nom: return p return None
Crée la classe Inventaire avec : - __init__ : self.produits = [] - ajouter_produit(produit) : ajoute a la liste - trouver(nom) : retourne le produit avec ce nom, ou None - produits_disponibles() : retourne la liste des produits avec stock > 0 - reapprovisionner(nom, quantite) : ajoute la quantite au stock du produit (ne fait rien si introuvable)
Tests (2/4)
Trouver un produit
from decimal import Decimal
inv = Inventaire()
p = Produit('Livre', Decimal('10'), 5)
inv.ajouter_produit(p)
assert inv.trouver('Livre') is p
from decimal import Decimal
class Produit:
def __init__(self, nom, prix, stock):
self.nom = nom
self.prix = Decimal(str(prix))
self.stock = stock
def est_disponible(self):
return self.stock > 0
class Inventaire:
def __init__(self):
self.produits = []
def ajouter_produit(self, produit):
self.produits.append(produit)
def trouver(self, nom):
for p in self.produits:
if p.nom == nom:
return p
return None
def produits_disponibles(self):
return [p for p in self.produits if p.est_disponible()]
def reapprovisionner(self, nom, quantite):
produit = self.trouver(nom)
if produit:
produit.stock += quantite