2. Extracció de nombres negatius (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 extraccio.py:
- extraccio.extreu_negatius(it)¶
- Paràmetres:
it – iterador sobre una seqüència S de strings, alguns dels quals representen nombres enters.
- Retorna:
iterador sobre els nombres enters negatius que hi ha a la seqüència S.
Per exemple,
>>> it = iter('Avui estarem entre -10 i -5 graus centígrads'.split())
>>> itr = extreu_negatius(it)
>>> next(itr)
-10
>>> next(itr)
-5
>>> next(itr, 'final')
'final'
>>> for num in extreu_negatius(iter('-5 89 i -123 són nombres enters però -12.345 no ho és'.split())):
... print(num*2)
-10
-246
Suggeriment
Per a resoldre el problema es recomana utilitzar la funció isdigit().
Disposeu d’un joc de proves més complet al fitxer tests-extreu.txt