1. Promoció¶
Dissenya la funció
calcula_descque donats un preu (numèric), un nombre d’unitats (enter), un string que és'T'si és un producte essencial i'F'altrament, un percentatge de descompte i el tipus de client (string), retorna el preu en euros (float) després d’aplicar el descompte i arrodonit a dos decimals. L’aplicació del descompte ha de seguir les següents regles:Si és un producte essencial, no hi ha cap descompte.
Si el tipus de client és
'VIP'o la compra és més gran o igual de 3 unitats, s’aplica el descompte.El preu amb descompte ha de ser de com a mínim 1 euro.
Desa la funció al fitxer
promocio.py:Els següents doctests mostren exemples del que ha de fer la funció:
>>> calcula_desc(2.10, 5, 'F', 10, 'VIP') 1.89 >>> calcula_desc(1.05, 3, 'T', 8, 'noVIP') 1.05 >>> calcula_desc(1.05, 2, 'F', 8, 'VIP') 1.0 >>> calcula_desc(1.95, 3, 'F', 5, 'noVIP') 1.85
Disposes de més tests al fitxer
test-calcula-desc.txtRepresentem una compra com un string que conté, separat per comes, el nom d’un producte, el preu unitari, el nombre d’unitats i
'T'o'F'segons si és un producte essencial o no, respectivament. Per exemple, a la compra'llet sencera,1.19,6,T'el producte és llet sencera, el preu per unitat és 1.19, s’han comprat 6 unitats i és un producte essencial.
Dissenya la funció
aplica_promocioque donada una llista de compres amb el format anterior, un percentatge de descompte (numèric) i un tipus de client (string), modifica la llista de manera que cada compra es substitueix per un string amb el nom del producte, una coma i el preu després d’aplicar el descompte cridant a la funció calcula_desc.Desa la funció al fitxer
promocio.py:Els següents doctests mostren exemples del que ha de fer la funció:
>>> lcomp1 = ['macarrons,2.12,5,F', 'arròs,1.05,1,F', 'cigrons,1.05,3,F', 'iogurt natural,1.95,3,F', 'llet sencera,1.19,6,T'] >>> aplica_promocio(lcomp1,15,'noVIP') >>> lcomp1 ['macarrons,1.8', 'arròs,1.05', 'cigrons,1.0', 'iogurt natural,1.66', 'llet sencera,1.19']
Disposes de més tests al fitxer
test-aplica-promocio.txtDisposes de solucions al fitxer
promocio.py