1. Comandes de clients¶
Una empresa representa les comandes d’un client en una llista que conté:
Un identificador de client que és un string format per nom, primer cognom i segon cognom separats per un o més espais.
Una llista amb els codis (string) de productes demanats. Cada codi de producte conté exactament un guió (
'-') que separa dues parts alfabètiques de longitud variable.Una llista d’enters amb les quantitats corresponents a cada producte, de manera que cada quantitat es troba a la mateixa posició d’aquesta llista que a la posició de la de codis de producte.
Una data (string) en format
"DD/MM/AAAA"
Per exemple:
["Anna Garcia Lopez", ["X34-Z1", "A12-B3", "C99-Q7"], [2, 0, 1], "12/06/2024"]
Dissenya la següent funció i desa-la al fitxer
comandes.py.- productes_no_demanats(comanda)¶
Retorna una llista de tuples (producte, inicial) pels productes amb quantitat igual a 0.
- Paràmetres:
comanda (list) – Llista que representa la comanda d’un client.
- Retorna:
Llista de tuples de parelles (producte, inicial) corresponents als productes amb quantitat igual a 0 i a on producte és el codi de producte i inicial la primera lletra del primer cognom del client.
- Tipus de retorn:
Els següents doctests mostren exemples del que ha de fer la funció:
>>> productes_no_demanats(["Anna Garcia Lopez", ["X34-Z1", "A12-B3", "C99-Q7"], [2, 0, 0], "12/06/2024"]) [('A12-B3', 'G'), ('C99-Q7', 'G')] >>> productes_no_demanats(["Joan Torres Vila", ["P00-X", "Q11-Y"], [1, 0], "01/01/2025"]) [('Q11-Y', 'T')]
Nota
Disposes de més tests al fitxer
test-productes-nodemanats.txt.D’altra banda, l’empresa disposa d’una llista de comandes amb les comandes de tots els clients i a on cada element és una llista de comandes d’un client com la descrita anteriorment. Per exemple:
>>> comandes1 = [ ... ["Josep Nadal Roca", ["DDDD-zz", "EEEE-x"], [0, 3], "01/03/2024"], ... ["Carla Ferrer Puig", ["HHHH-pp", "GGGG-oo"], [0, 4], "02/03/2024"], ... ["Laura Ruiz Gomez", ["BBBB-mm", "CCCC-a", "AAAA-n"], [0, 0, 2], "03/03/2024"] ... ]
Dissenya la següent funció i desa-la al fitxer
comandes.py.- incompletes(comandes)¶
Retorna una llista de tuples (data, inicial, producte) per tots els productes amb quantitat igual a 0 de qualsevol dels clients.
- Paràmetres:
comandes (list) – Llista de comandes.
- Retorna:
Llista de tuples (data, inicial, producte) corresponents als productes amb quantitat igual a 0 i a on data és la data de la comanda, producte és el codi de producte i inicial la primera lletra del primer cognom del client. La llista estarà ordenada segons la segona part del codi de producte, en ordre descendent.
- Tipus de retorn:
Aquesta funció ha de cridar a
productes_no_demanats().La llista retornada estarà ordenada seguint l’ordre natural dels tuples (primer per data, després inicial, i després codi de producte).
Els següents doctests mostren exemples del que ha de fer la funció:
>>> comandes1 = [ ... ["Josep Nadal Roca", ["DDDD-zz", "EEEE-x"], [0, 3], "01/03/2024"], ... ["Carla Ferrer Puig", ["HHHH-pp", "GGGG-oo"], [0, 4], "02/03/2024"], ... ["Laura Ruiz Gomez", ["BBBB-mm", "CCCC-a", "AAAA-n"], [0, 0, 2], "03/03/2024"] ... ] >>> incompletes(comandes1) [('01/03/2024', 'N', 'DDDD-zz'), ('02/03/2024', 'F', 'HHHH-pp'), ('03/03/2024', 'R', 'BBBB-mm'), ('03/03/2024', 'R', 'CCCC-a')]
Nota
Disposes de més tests al fitxer
test-incompletes.txt.
Disposes de solucions al fitxer comandes.py.