1. Fidelització¶
Una botiga emmagatzema dades sobre els clients que tenen targeta de fidelització en un diccionari on cada clau és un codi de client i cada valor una llista de dos elements amb l’import total de compres i el total de punts de fidelització d’aquest client. Per exemple:
>>> dc = {'CC-9421': [247, 5], 'CC-4881': [934, 100],
... 'CC-4241': [282, 100]}
D’altra banda, les noves compres s’emmagatzemen en una llista de tuples de tres elements amb un codi de client, un import de compra i un booleà que indica si és client VIP. Per exemple:
>>> lc = [('CC-4881', 130, False), ('CC-4881', 180, False),
... ('CC-7673', 175, True), ('CC-3764', 161, True), ('CC-4241', 16, False)]
Dissenya la funció actualitza que donat un diccionari com l’indicat i una llista de compres, modifica el diccionari de manera que actualitza l’import de compres i els punts de cada client amb la informació donada a la llista. Per actualitzar els punts, si el client és VIP s’afegirà la part entera del 10% de l’import de compra i si no ho és, la part entera del 5% de l’import de compra. Per algunes compres d’import molt baix, pot ser que no s’afegeixi cap punt.
Els següents doctests mostren exemples del que ha de fer la funció:
>>> dc = {'CC-9421': [247, 5], 'CC-4881': [934, 100],
... 'CC-4241': [282, 100]}
>>> lc = [('CC-4881', 130, False), ('CC-4881', 180, False),
... ('CC-7673', 175, True), ('CC-3764', 161, True), ('CC-4241', 16, False)]
>>> actualitza(dc,lc)
>>> dc == {'CC-9421': [247, 5], 'CC-4881': [1244, 115], 'CC-4241': [298, 100], 'CC-7673': [175, 17], 'CC-3764': [161, 16]}
True
Disposeu de tests al fitxer test-fidelitzacio.txt.
Deseu la funció al fitxer fidelitzacio.py i pugeu-lo a Atenea.
Disposeu d’una solució al fitxer fidelitzacio.py.