Devoir NSI : Dictionnaires 20-21 G1
L'usage de la calculatrice n'est pas autorisé.
Durée : 55 min
Magasin en ligne
«Chez Geek and sons tout ce qui est inutile peut s'acheter, et tout ce qui peut s'acheter est un peu trop cher.»
La base de prix des produits de Geek and sons est représentée en Python par un dictionnaire de type dict[str:float]
avec :
- les noms de produits, de type str, comme clés ;
- les prix des produits, de type float, comme valeurs associées.
Question 1
Donner une expression Python pour construire la base des prix des produits correspondant à la table suivante :
Nom du Produit | Prix TTC |
---|---|
Sabre laser | 229.0 |
Mitendo DX | 127.30 |
Coussin Linux | 74.50 |
Slip Goldorak | 29.90 |
Station Nextpresso | 184.60 |
prix={'Sabre laser':229,'Mitendo DX':127.30,'Coussin Linux':74.50,'Slip Goldorak':29.90,'Station Nextpresso':184.60}
Question 2
Donner une définition de la fonction disponible
qui étant donné un nom de produit prod
et une base de prix Prix
, retourne True
si le produit est présent dans la base, ou False
sinon.
def disponible(prod,D):
return prod in D
Question 3
Donner une définition de la fonction prix_moyen
qui, étant donné une base de prix Prix
(contenant au moins un produit), retourne le prix moyen des produits disponibles.
Par exemple :
>>> prix_moyen(Prix)
>>> 129.06
def prix_moyen(Prix):
res=0
for i in Prix.values():
res=res+i
res=res/len(Prix.values())
return res
Question 4
Donner une définition de la fonction fourchette_prix
qui, étant donné un prix minimum mini
, un prix maximum maxi
et une base de Prix nommée Prix
, retourne la liste des noms de produits disponibles dans cette fourchette de prix.
Par exemple :
>>> fourchette_prix(50.0, 200.0, Prix)
>>> {'Coussin Linux', 'Mitendo DX', 'Station Nextpresso'}
def fourchette_prix(mini,maxi,Prix):
res=[]
for i,j in Prix.items():
if j<=maxi and j>=mini:
res.append(i)
return res
Question 5
Le panier est un concept omniprésent dans les sites marchands, Geek and sons n'échappe pas à la règle. En Python, le Panier
du client sera représenté par un dictionnaire de type dict[str:int]
avec :
- les noms de produits comme clés;
- une quantité d'achat comme valeurs associées.
Donner une expression Python correspondant à l'achat de 3 sabres lasers, de 2 coussins Linux et de 1 slip Goldorak.
panier={'Sabre laser':3,'Coussin Linux':2,'Slip Goldorak':1}
Question 6
Donner une définition de la fonction tous_disponibles
qui, étant donné un panier d'achat Panier
et une base de Prix Prix
, retourne True
si tous les produits demandés sont disponibles (=habituellement vendus par l'entreprise), ou False
sinon.
def tous_disponibles(Pa,Pr):
res=True
for i in Pa.keys():
res=res and disponible(i,Pr)
return res
def tous_disponibles2(Pa,Pr):
res=True
i=0
clésdupanier=list(Pa.keys())
while res==True and i<len(clésdupanier):
res=disponible(clésdupanier[i],Pr)
i=i+1
return res
Question 7
Donner une définition de la fonction prix_achats
qui, étant donné un panier d'achat Panier
et une base de Prix Prix
, retourne le prix total correspondant.
Par exemple :
>>> prix_achats(Panier,Prix)
>>> 865.9
def prix_achats(Pa,Pr):
prixtotal=0
for i,j in Pa.items():
prixtotal=prixtotal+j*Pr[i]
return prixtotal