Avís
Per a resoldre aquests exercicis no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura. Ara bé, podeu dissenyar les funcions demanades bé com a generadors, bé utilitzant les funcions predefinides de Python i les dels mòduls itertools, functools i operator.
1. Canvi brusc de la temperatura (5 punts)¶
Es demana que dissenyeu la funció especificada a continuació i la deseu en un fitxer anomenat temperatura.py:
- temperatura.canvi_temp(it, inc)¶
- Paràmetres:
it (iterador) – iterador que genera una seqüència de tuples. Cada tupla correspon a la temperatura màxima enregistrada un cert dia. El primer element de la tupla és un enter corresponent al dia de l’any en que s’ha registrat la temperatura (valor entre 1 i 365) i el segon element de la tupla correspon al valor de la temperatura registrada.
inc (enter) – enter que representa el llindar a partir del qual considerarem que hi ha hagut un canvi brusc de temperatura.
- Retorna:
iterador que genera una seqüència d’enters dels dies de l’any en que hi ha hagut un canvi brusc de temperatura. Considerarem que hi hagut un canvi brusc quan la diferència en valor absolut entre la temperatura enregistrada aquell dia i la mitjana dels dos dies anteriors és més gran de inc.
Per exemple,
>>> it= iter([(1, 12), (2, 12), (3, 13), (4, 13), (5, 15), (6, 15), (7, 18)])
>>> itt= canvi_temp(it, 1)
>>> next(itt)
5
>>> next(itt)
7
>>> next(itt,'final' )
'final'
>>> it1= iter([(1, 12), (2, 12), (3, 15), (4, 15), (5, 18), (6, 19), (7, 18), (8, 21), (10, 24), (15, 25)])
>>> itc= canvi_temp(it1, 2)
>>> next(itc)
3
>>> next(itc)
5
>>> next(itc)
6
>>> for x in itc:
... print(x, end=',')
8,10,15,
Disposeu d’un joc de proves més complet al fitxer tests-temperatura.txt