Python - yield

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

Informazioni: Python - yield