.. module:: unitats Canvi d'unitats --------------- Un *diccionari de canvi d'unitats* és un diccionari en què les claus són noms d'unitats i el valor corresponent és el factor de conversió a la *unitat de referència*. Per exemple, al *diccionari de canvi d'unitats* següent, la *unitat de referència* són els centímetres cúbics. .. code-block:: python3 { 'cl': 10, # 1 cl = 10 cm³ 'dl': 100, # 1 dl = 100 cm³ 'l': 1000, # 1 l = 1000 cm³ } Volem facilitar la creació de *diccionaris de canvi d'unitats* quan les unitats a convertir són del `Sistema Internacional d'Unitats `__ (SI). Per això, partirem d'un *diccionari de prefixos* que contindrà alguns dels `prefixos de l'SI `__. Una clau d'aquest diccionari serà un símbol del prefix i el valor associat la potència de 10 que li correspon. Per exemple, al *diccionari de prefixos* següent, la clau ``'d'`` és el símbol del prefix *deci* i li correspon :math:`10^{-1}`, la clau ``'c'`` és el símbol del prefix *centi* i li correspon :math:`10^{-2}` i així successivament. .. literalinclude:: test-calcula_canvi_unitats.txt :language: pycon :start-after: ---- dp-inici :end-before: ---- dp-fi Dissenya la funció següent i desa-la al mòdul :mod:`unitats` (fitxer :file:`unitats.py`). .. function:: calcula_canvi_unitats(uni_origen, potencia, factor, prefixos) `uni_origen` és una unitat de l'SI sense prefix. `potencia` a què cal elevar els prefixos. Normalment, serà 1, però pot ser 2 en el cas d'unitats de superfície (m²) o 3 en cas de volum (m³). `factor` de conversió entre `uni_origen` i la *unitat de referència* (que és implícita). `prefixos` és un *diccionari de prefixos*. Retorna el *diccionari de canvi d'unitats* que conté els factors de conversió tant de `uni_origen` com dels `prefixos` del *diccionari de prefixos* cap a la `unitat de referència`. Cal enganxar els símbols dels `prefixos` a `uni_origen`. Per exemple: .. literalinclude:: test-calcula_canvi_unitats.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-calcula_canvi_unitats.txt`.