Gestió energètica ================= #. Una empresa de gestió energètica vol estudiar com canvien els nivells de consum d’energia en diverses zones segons les condicions de temperatura. Les *dades d’una zona* es representen com una llista de llistes on cada subllista es una *mostra* i conté tres valors: un identificador (str), la temperatura registrada (enter) i el nivell d’energia associat (enter). Per exemple: .. code-block:: python [['223d', 14, 50], ['252h', 18, 52], ['0232', 27, 40]] Dissenya la funció ``equilibra_zona(lzona, var)`` que donada una llista amb les dades d'una zona *lzona* i un valor de variació *var* (enter), **modifiqui** la llista de manera que: * Si la temperatura de la mostra és inferior a 15 incrementi el nivell d’energia en *var* unitats. * Si la temperatura de la mostra és superior a 25, redueixi el nivell d’energia en *var* unitats, però només si l'energia resultant no és negativa. Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-equilibra-zona.txt :language: python3 :lines: 3-11 Disposes de més tests al fitxer :download:`test-equilibra-zona.txt` Desa la funció al fitxer :file:`energia.py` #. Es representen les dades de totes les zones com un **diccionari de zones**, on cada clau és el nom d’una zona (string) i cada valor és una llista de llistes amb les dades d'una zona com les de l'apartat anterior. Per exemple: .. code-block:: python zones = { "Nord": [['223d', 14, 50], ['252h', 18, 52]], "Sud": [['723xx', 26, 40], ['522s', 28, 38]] } També disposem d’un *diccionari de producció energètica actual*, on cada clau és el nom d’una zona i cada valor és un real que representa la temperatura actual d’aquella zona: .. code-block:: python produccio = {"Nord": 1800, "Sud": 4200} Dissenya la funció ``revisa_zones(dzon, var, dprod, pmin, pmax)`` que donat un diccionari de zones *dzon*, un valor *var* (enter), un diccionari de producció energètica *dprod* i dos enters *pmin* i *pmax*, **modifiqui** les dades de totes aquelles zones que estiguin a *dzon* i per les quals la producció actual és inferior a *pmin* o superior a *pmax*, **cridant** per a cadascuna d’elles la funció ``equilibra_zona``. Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-revisa-zones.txt :language: python3 :lines: 3-15 Disposes de més tests al fitxer :download:`test-revisa-zones.txt` Desa la funció al fitxer :file:`energia.py` Disposes de solucions al fitxer :download:`energia.py`.