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