1. Promoció

  1. Dissenya la funció calcula_desc que 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.txt

  2. Representem 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_promocio que 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.txt

    Disposes de solucions al fitxer promocio.py