Python - yield

################################################################ #10 ejemplos utilizando las palabras claves yield en Python. #1. Generador simple que devuelve números del 1 al 5: def numeros(): yield 1 yield 2 yield 3 yield 4 yield 5 for num in numeros(): print(num) #2. Generador que devuelve números pares del 0 al 10: def pares(): for num in range(11): if num % 2 == 0: yield num for num in pares(): print(num) #3. Generador que devuelve los caracteres de una cadena de texto: def caracteres(texto): for char in texto: yield char for letra in caracteres('Hola'): print(letra) #4. Generador que devuelve los números de una lista que son mayores que un valor dado: def mayores_que(lista, valor): for num in lista: if num > valor: yield num numeros = [1, 5, 10, 15, 20] for num in mayores_que(numeros, 10): print(num) #5. Generador que devuelve los números de una lista que son pares: def pares(lista): for num in lista: if num % 2 == 0: yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in pares(numeros): print(num) #6. Generador que devuelve los números de una lista que son impares: def impares(lista): for num in lista: if num % 2 != 0: yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in impares(numeros): print(num) #7. Generador que devuelve los números de una lista que son divisibles por un valor dado: def divisibles(lista, divisor): for num in lista: if num % divisor == 0: yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in divisibles(numeros, 3): print(num) #8. Generador que devuelve los números de una lista que son primos: def es_primo(num): if num < 2: return False for i in range(2, num): if num % i == 0: return False return True def primos(lista): for num in lista: if es_primo(num): yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in primos(numeros): print(num) #9. Generador que devuelve los números de una lista que son cuadrados perfectos: def es_cuadrado_perfecto(num): raiz = int(num ** 0.5) return raiz ** 2 == num def cuadrados_perfectos(lista): for num in lista: if es_cuadrado_perfecto(num): yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in cuadrados_perfectos(numeros): print(num) #10. Generador que devuelve los números de una lista que son múltiplos de dos valores dados: def multiplos(lista, divisor1, divisor2): for num in lista: if num % divisor1 == 0 and num % divisor2 == 0: yield num numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in multiplos(numeros, 2, 3): print(num)

Geogebra Python