2. Dies (4 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, en un fitxer anomenat dies.py deseu la funció especificada a continuació:
- dies.dies_setmana(ndies, ndia, it)¶
- Paràmetres:
ndies (list) – llista de amb els set noms dels dies de la setmans (strings). La posició 0 correspon al primer dia (dilluns).
ndia (int) – enter que indica que indica la posició del nom dins la llista ndies corresponent al primer element de it.
it – iterable d’enters entre 1 i 31, consecutius, corresponents a nombres de dies seguits.
- Retorna:
iterador de tuples (nom del dia de setmana, nombre del dia) amb tants elemens com hi ha en it.
Per exemple,
>>> ndies= ['dilluns','dimarts','dimecres','dijous','divendres',
... 'dissabte','diumenge']
>>> dies = [27, 28, 29, 30, 1, 2, 3]
>>> it = dies_setmana(ndies, 3, dies)
>>> next(it)
('dijous', 27)
>>> next(it)
('divendres', 28)
>>> next(it)
('dissabte', 29)
>>> for dia in it:
... print(dia, end='-')
('diumenge', 30)-('dilluns', 1)-('dimarts', 2)-('dimecres', 3)-
Per a resoldre aquest problema us pot resultar útil les funcions itertools.cycle() i itertools.dropwhile(), entre d’altres.
Disposeu d’un joc de proves més complet en el fitxer test-dies.txt
`