2. Inflació (5 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir iteracions (ni for ni while ), només les funcions predefinides de Python i les dels mòduls itertools, functools i operator. Tampoc no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar els elements d’un iterador.
Es vol estudiar l’evolució del preu d’un determinat producte al llarg dels darrers mesos, i es disposa del preu inicial del producte i d’una seqüència dels increments (o decrements) que ha sofert el preu al llarg dels darrers mesos. Es vol obtenir la seqüència dels preus d’aquest producte en cadascun d’aquests darrers mesos. És a dir, el preu del mes i-èssim és el preu inicial havent-li sumat tots els increments (o decrements) fins a l’i-èssim inclòs.
Es demana que, en un fitxer anomenat preus.py, hi deseu la funció especificada a continuació:
- preus.incrementa_preus(preui, inc)¶
- Paràmetres:
preui (int) – preu inicial del producte
inc – iterable (no buit) sobre una seqüència de nombres enters que representen els increments (o decrements) del preu al llarg dels darrers mesos
- Retorna:
un iterador sobre els preus d’aquest producte en els darrers mesos
Per exemple:
>>> inc = iter([1, 3, 1, 2])
>>> it = incrementa_preus(4, inc)
>>> for i in it:
... print(i, end = ',')
5,8,9,11,
>>> next(it, 'final')
'final'
Disposeu d’un joc de proves més complet al fitxer tests-incrementa_preus.txt
Nota
Per a resoldre aquest exercici podeu fer servir la funció itertools.accumulate() entre altres