Perfums ======= .. py:module:: perfums L'empresa FLAIRES S.A. disposa d'informació sobre els perfums que fabrica emmagatzemada en una llista de llistes on a cada subllista hi ha informació sobre un perfum: nom del perfum (string), nom del tipus de perfum (un string que pot ser ``'PARFUM', 'EAU_PARFUM', 'EAU_TOILETTE'`` o bé ``'EAU_COLOGNE'``), contingut en ml (enter) i preu en euros (numèric). Es demana que dissenyeu un seguit de funcions, que haureu de desar al fitxer `perfums.py` .. py:function:: creaperfums1(lperfums) Donada una llista de perfums com la descrita, retorna un diccionari a on cada clau és un contingut en ml i cada valor una llista amb els noms dels perfums amb aquest contingut: .. literalinclude:: test_creaperfums1.txt :language: python :lines: 3- .. Note:: Podeu descarregar el fitxer amb tests :download:`test_creaperfums1.txt`. .. py:function:: creaperfums2(lperfums) Donada una llista de perfums com la descrita, retorna un diccionari a on cada clau és un contingut en ml i cada valor una llista de llistes amb els noms dels perfums amb aquest contingut i el seu preu: .. literalinclude:: test_creaperfums2.txt :language: python :lines: 3- .. Note:: Podeu descarregar el fitxer amb tests :download:`test_creaperfums2.txt`. .. py:function:: espotcomprar1(perfums, euros) Donat un diccionari com el retornat per la funció *crea_perfums2* i una quantitat d'euros, volem saber si hi ha algun perfum al diccionari que es pugui comprar amb aquesta quantitat. Per fer-ho, es demana en primer lloc una funció :py:func:`hi_ha_perfum`, que donada una llista de subllistes de dos elements (un string i un enter que representen respectivament, el nom del perfum i el preu) i un enter anomemat ``quant`` retorna ``True`` si hi ha algun perfum en la llista amb un preu inferior a ``quant`` i ``False`` en cas contrari. Utilitzant aquesta funció, implementa :py:func:`espotcomprar1` que retorna ``True`` si al diccionari donat hi ha algun perfum que es pugui comprar amb aquesta quantitat i ``False`` en cas contrari: .. literalinclude:: test_espotcomprar1.txt :language: python :lines: 3- .. Note:: Podeu descarregar el fitxer amb tests :download:`test_espotcomprar1.txt`. .. py:function:: espotcomprar2 Donat un diccionari com el retornat per la funció *crea_perfums2* i una quantitat en euros, retorna una llista amb els noms dels perfums que tenen un preu que no supera aquesta quantitat. La llista ha d'estar ordenada alfabèticament. En aquest cas, implementa una funció :py:func:`hi_ha_perfum2` que a partir d'una llista de subllistes de dos elements (nom i preu dels perfums) i d'un enter retorna la llista de tots els perfums que tenen un preu inferior a aquesta quantitat. Igual que en l'apartat anterior, fes servir aquest funció per implementar *crea_perfums2*. La llista ha d'estar ordenada alfabèticament: .. literalinclude:: test_espotcomprar2.txt :language: python :lines: 3- .. Note:: Podeu descarregar el fitxer amb tests :download:`test_espotcomprar2.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`perfums.py `.