3. Preu producte [4 Punts]¶
Una parada del mercat ens demanen que els fem una funció que calculi el preu que ha de pagar un client per la compra d’una certa quantitat d’un producte. Les dades que tindrem seran un string amb informació sobre el preu del producte (producte-preu) i un string sobre la quantitat de producte que es desitja (producte-quantitat). Per fer-ho, hauràs d’implementar dues funcions.
Donat un string amb el format
nom_producte : preu ; unitat_del_preuon
nom_producteés el nom del producte i pot estar format per una paraula o més. Després trobem el caràcter':'. Entre el nom del producte i aquest caràcter poden haver-hi un o més espais en blanc. Elpreuve donat per dígits que representen el preu en cèntims d’euro i finalment launitat_del_preuque ens diu en quina unitat es dona el preu. Això pot ser'gram','100 grams'o'quilo'. Aquestes dues informacions estan separades per un';'sense cap espai en blanc després d’aquest caràcter.Per exemple,
pernil espatlla ibèrica : 6500 ;quilo. Indica que l’espatlla ibèrica va a 65 euros el quilo ipernil dolç : 190 ;100 grams, indica que el pernil dolç va a 1.9 euros els 100 grams.Implementa una funció, anomenada
nom_preuque donat un string com l’anteriorment descrit, et retorna un string corresponent al nom del producte i un enter corresponent al preu en cèntims d’euro que val un quilo del producte donat.Desa la funció al fitxer
preu_unitat.py. La funció ha de passar el següent doctest:>>> nom_preu('pernil espatlla ibèrica : 6500 ;quilo') ('pernil espatlla ibèrica', 6500) >>> nom_preu('pernil país : 230 ;100 grams') ('pernil país', 2300) >>> nom_preu('col : 500 ;quilo') ('col', 500) >>> nom_preu('pernil país: 230 ;100 grams') ('pernil país', 2300) >>> nom_preu('pernil ibèric: 12 ;1 gram') ('pernil ibèric', 12000)
Nota
Pots descarregar el fitxer amb tests
test-preu1.txt.Fent servir la funció de l’apartat anterior. Implementa, en el mateix fitxer, una funció anomenada
preutal que donat un string com el de l’apartat anterior i donat un string corresponent a la quantitat de producte que han comprat expressat en quilos, en calcula el preu que haurà de pagar el client. La quantitat de producte ve donada amb un string del tipusquantitat unitat, amb un únic espai en blanc entre la quantitat i la unitat. La unitat sempre són quilos. La funció retornarà un string com segueix: «El preu de nom_del_producte és de valor cèntims d’euro», on el nom_del_producte serà el donat amb un únic espai en blanc al final i valor el que correspon al que ha de pagar arrodonit a un decimal.En cas que no es cridi la funció anterior aquest apartat es considerarà malament
La funció ha de passar el següent doctest:
>>> preu('pernil espatlla ibèrica : 6500 ;quilo', '0.12 quilos') "El preu de pernil espatlla ibèrica és de 780.0 cèntims d'euro" >>> preu('pernil país : 230 ;100 grams', '0.52 quilos') "El preu de pernil país és de 1196.0 cèntims d'euro" >>> preu('col : 500 ;quilo', '4 quilos') "El preu de col és de 2000.0 cèntims d'euro" >>> preu('pernil país: 230 ;100 grams', '0.3 quilos') "El preu de pernil país és de 690.0 cèntims d'euro" >>> preu('pernil ibèric: 12 ;1 gram', '0.15 quilos') "El preu de pernil ibèric és de 1800.0 cèntims d'euro"
Nota
Pots descarregar el fitxer amb tests
test-preu2.txt.Pots trobar una solució a
preu_unitat.py.