Comercials¶
Les dades de vendes dels comercials d’una empresa es representen com a una llista on cada element és una altra llista que conté la informació d’un comercial concret: el seu identificador (un enter), la zona on treballa (una cadena de caràcters) i la xifra de vendes. Un comercial només té assignada una zona i per tant un identificador no pot aparèixer més d’una vegada a la llista. Per exemple la següent llista representa les dades de 4 comercials:
[[1182,"Nord",1302], [1173,"Sud",1372], [1190,"Nord",232], [1107,"Sud",173]]
A partir d’aquesta definició, dissenya les següents funcions:
La funció primer_mes_baix tal que donada una llista de comercials i una xifra de vendes v, retorna l’identificador del primer comercial amb una xifra de vendes inferior a v o -1 si no n’hi ha cap.
Desa la funció al fitxer
comercial1.py
. La funció ha de passar el següent doctest:>>> comercials = [[1182,"Nord",1302], [1173,"Sud",1372], [1190,"Nord",232], [1107,"Sud",173]] >>> primer_mes_baix(comercials, 300) 1190 >>> primer_mes_baix(comercials, 100) -1
Nota
Podeu descarregar el fitxer amb tests
comercial1.txt
La funció elimina_id tal que donada una llista de comercials i un identificador, retorna una nova llista sense el comercial amb aquest identificador o bé una nova llista igual a la original si no n’hi ha cap.
Desa la funció al fitxer
comercial2.py
. La funció ha de passar el següent doctest:>>> comercials = [[1182,"Nord",1302], [1173,"Sud",1372], [1190,"Nord",232], [1107,"Sud",173]] >>> elimina_id(comercials, 1182) [[1173, 'Sud', 1372], [1190, 'Nord', 232], [1107, 'Sud', 173]] >>> elimina_id(comercials, 1173) [[1182, 'Nord', 1302], [1190, 'Nord', 232], [1107, 'Sud', 173]] >>> elimina_id(comercials, 3000) [[1182, 'Nord', 1302], [1173, 'Sud', 1372], [1190, 'Nord', 232], [1107, 'Sud', 173]]
Nota
Podeu descarregar el fitxer amb tests
comercial2.txt
La funció politica_drastica tal que donada una llista de comercials i una xifra de vendes v, retorna una nova llista sense el primer comercial amb una xifra de vendes inferior a v. Si cap comercial té una xifra de vendes inferior a v, aquesta funció ha de retornar una llista igual a la donada. Aquesta funció ha de cridar les dues anteriors.
Desa la funció al fitxer
comercial3.py
. La funció ha de passar el següent doctest:>>> comercials = [[1182,"Nord",1302], [1173,"Sud",1372], [1190,"Nord",232], [1107,"Sud",173]] >>> politica_drastica(comercials, 300) [[1182, 'Nord', 1302], [1173, 'Sud', 1372], [1107, 'Sud', 173]] >>> politica_drastica(comercials, 100) [[1182, 'Nord', 1302], [1173, 'Sud', 1372], [1190, 'Nord', 232], [1107, 'Sud', 173]]
Nota
Podeu descarregar el fitxer amb tests
comercial3.txt
Solució
Disposeu de solucions als fitxers comercial1.py
, comercial2.py
, comercial3.py