You've already forked Curso-lenguaje-python
Restructure content and add notes from HolaMundo
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
113
python-total/dia_08/08_generadores.py
Normal file
113
python-total/dia_08/08_generadores.py
Normal file
@@ -0,0 +1,113 @@
|
||||
"""
|
||||
Funciones generadoras
|
||||
|
||||
se iteran pero espera a ejecutar al momento que se le pide
|
||||
|
||||
Utiliza yield (Construir) para retornar
|
||||
y devuelve con next
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def mi_funcion():
|
||||
for x in range(1, 5):
|
||||
yield x * 10
|
||||
|
||||
|
||||
def mi_generador():
|
||||
for i in range(1, 4):
|
||||
yield i
|
||||
|
||||
|
||||
h = mi_funcion()
|
||||
|
||||
print(next(h))
|
||||
|
||||
g = mi_generador()
|
||||
|
||||
print(next(g))
|
||||
print(next(g))
|
||||
print(next(g))
|
||||
|
||||
print()
|
||||
|
||||
|
||||
# Otro ejemplo
|
||||
|
||||
|
||||
def mi_generation():
|
||||
x = 1
|
||||
yield x
|
||||
|
||||
x += 1
|
||||
yield x
|
||||
|
||||
x += 1
|
||||
yield x
|
||||
|
||||
|
||||
i = mi_generation()
|
||||
|
||||
print(next(i))
|
||||
print(next(i))
|
||||
print(next(i))
|
||||
|
||||
|
||||
print()
|
||||
|
||||
# Ejercicio 1
|
||||
|
||||
|
||||
def infinito():
|
||||
i = 0
|
||||
while i != -1:
|
||||
i += 1
|
||||
yield i
|
||||
|
||||
|
||||
generador = infinito()
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
|
||||
|
||||
print()
|
||||
|
||||
# Ejercicio 2
|
||||
|
||||
|
||||
def infinito_siete():
|
||||
i = 0
|
||||
resultado = 7
|
||||
while i != -1:
|
||||
i += 1
|
||||
resultado = 7 * i
|
||||
yield resultado
|
||||
|
||||
|
||||
generador = infinito_siete()
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
print(next(generador))
|
||||
|
||||
|
||||
print()
|
||||
|
||||
# Ejercicio 2
|
||||
|
||||
|
||||
def vidas():
|
||||
yield "Te quedan 3 vidas"
|
||||
yield "Te quedan 2 vidas"
|
||||
yield "Te queda 1 vida"
|
||||
yield "Game Over"
|
||||
|
||||
|
||||
vida = vidas()
|
||||
|
||||
print(next(vida))
|
||||
print(next(vida))
|
||||
print(next(vida))
|
||||
print(next(vida))
|
||||
Reference in New Issue
Block a user