2. Comptar enrere (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 tots els elements d’un iterador.
Es demana que dissenyeu la funció especificada a continuació i la deseu en un fitxer anomenat countdown.py:
- countdown.comptar_enrere(it)¶
- Paràmetres:
it – Iterador d’una seqüència d’enters positius \(N_1, N_2, \dots\)
- Retorna:
Iterador sobre la seqüència \(N_1, N_1-1, N_1-2, \dots ,1, N_2, N_2-1, N_2-2, \dots ,1, \dots\)
Per exemple,
>>> from countdown import comptar_enrere
>>> itr = comptar_enrere(iter([3, 5, 2, 8]))
>>> for x in itr:
... print(x, end=',')
3,2,1,5,4,3,2,1,2,1,8,7,6,5,4,3,2,1,
>>> next(itr, 'final')
'final'
Disposeu d’un joc de proves més complet al fitxer tests-countdown.txt