.. module:: quantitats Quantitats consumides --------------------- Volem calcular un resum del consum de materials a partir d'una *llista de materials consumits* on un mateix material pot aparèixer més d'un cop amb la quantitat consumida expressada en unitats diferents. Els elements d'una *llista de materials consumits* són tuples de tres elements: el nom del material, la quantitat consumida i les unitats en què s'expressa la quantitat consumida. Per exemple, la *llista de materials consumits* següent indica que s'han consumit 100 grams de sal i que d'amoníac hi ha hagut dos consums: un de 2 centilitres i un altre de 5 decilitres. .. literalinclude:: test-resumeix_quantitas.txt :language: pycon :start-after: ---- consum-inici :end-before: ---- consum-fi Per tal de calcular el resum, cal tenir en compte les *unitats de referència* en què s'expressaran les quantitats totals. A l'exemple següent, el volum s'expressarà en cm³ i la massa en grams. El canvi d'unitats es farà amb l'ajuda d'un *diccionari de canvi d'unitats* on les claus són noms d'unitats i el valor corresponent és el factor de conversió a la unitat. Per exemple, al *diccionari de canvi d'unitats* següent, el factor de conversió de centilitres a centímetres cúbics és 10 i els de kilograms a grams de 1000. .. literalinclude:: test-resumeix_quantitas.txt :language: pycon :start-after: ---- cu-inici :end-before: ---- cu-fi Dissenya la funció següent i desa-la al mòdul :mod:`quantitats` (fitxer :file:`quantitats.py`). .. function:: resumeix_quantitats(consum, canvi_unitats) `consum` és una *llista de materials consumits*. `canvi_unitats` és un *diccionari de canvi d'unitats*. Retorna un *diccionari de materials consumits* i una *llista de materials consumits*. Les claus del *diccionari de materials consumits* són noms de materials i el valor és la quantitat consumida d'aquest material. La quantitat consumida d'un material es calcula sumant les quantitats del material a `consum` havent-les convertit a la *unitat de referència* segons `canvi_unitats`. La *llista de materials consumits* que retorna conté els elements de `consum` que no s'han pogut convertir a les *unitats de referència* perquè la unitat del consum no té associat un factor de conversió en `canvi_unitats`. Per exemple: .. literalinclude:: test-resumeix_quantitas.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-resumeix_quantitas.txt`.