def generador1(): """ Produeix la seqüència de strings 'avui' 'no' 'és' 'diumenge' """ yield 'avui' yield 'no' yield 'és' yield 'diumenge' def quadrats(n): """ Produeix la seqüència dels quadrats dels nombres naturals 0 1 4 9 16 25 36 ... n*n """ for a in range(n): yield a**2 def quadrats_s(): """ Produeix la seqüència infinita (potencialment) dels quadrats dels nombres naturals: 0 1 4 9 16 25 36 ... """ a = 0 while True: yield a**2 a = a + 1 def fibonacci(): """ Produeix la seqüència (infinita) dels nombres de Fibonacci """ a, b = 0,1 while True: yield a a, b = b, a + b def extreu_nombres(fitxer): """ Donat un fitxer de text (ja obert) que conté un nombre variable d'enters a cada fila, separats per un o més espais en blanc, produeix la seqüència d'enters del fitxer. """ for linia in fitxer: nombres = linia.split() for nombre in nombres: yield int(nombre) def extreu_nombres2(fitxer): """ Donat un fitxer de text (ja obert), produeix la seqüència dels enters que hi ha al fitxer. """ for linia in fitxer: paraules = linia.split() for paraula in paraules: try: e = int(paraula) yield e except ValueError: pass