Generadores
Comprenda los generadores y su uso para crear iteradores.
Generadores es una lección gratuita de Python For Kids en CoddyKit. Esta es la lección 2 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python For Kids, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python For Kids incluye 5 lecciones en total.
Introducción a los generadores
Los generadores son un tipo especial de iterador en Python que permite recorrer datos de forma diferida. En lugar de devolver todos los datos a la vez, producen un elemento cada vez, lo que reduce el uso de memoria.
En esta lección aprenderá a crear y utilizar generadores en Python.

¿Qué es un generador?
Un generador es una función que utiliza la palabra clave yield para devolver valores de uno en uno. Cada llamada al método next() del generador reanuda la ejecución desde el punto en el que se produjo el último valor.
# Basic generator example
def my_generator():
yield 1
yield 2
yield 3
# Using the generator
gen = my_generator()
print(next(gen)) # Outputs: 1
print(next(gen)) # Outputs: 2
print(next(gen)) # Outputs: 3Cómo funcionan los generadores
Los generadores guardan el estado de la función para poder reanudar la ejecución exactamente desde el punto en que se detuvo. Esto hace que sean eficientes en cuanto al uso de memoria e ideales para conjuntos de datos grandes.
# Example: Generating a range of numbers
def range_generator(start, end):
while start < end:
yield start
start += 1
for number in range_generator(1, 5):
print(number) # Outputs: 1, 2, 3, 4Expresiones generadoras
Las expresiones generadoras son similares a las comprensiones de listas, pero utilizan paréntesis en lugar de corchetes. Crean generadores en lugar de listas.
# Generator expression
gen_exp = (x * x for x in range(5))
for value in gen_exp:
print(value) # Outputs: 0, 1, 4, 9, 16Generadores frente a listas
Los generadores utilizan la memoria de forma más eficiente que las listas porque no almacenan todos los datos en memoria. En su lugar, generan los datos sobre la marcha.
# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]
# Generator expression
gen_exp = (x * x for x in range(1000000))
# List comprehension uses more memory
print(type(list_comp)) # Outputs: <class 'list'>
print(type(gen_exp)) # Outputs: <class 'generator'>Casos de uso de los generadores
Los generadores son ideales para:
- Procesar conjuntos de datos grandes que no caben en la memoria.
- Generar secuencias infinitas.
- Evaluar datos de forma diferida.
Generadores infinitos
Los generadores pueden producir secuencias infinitas, como una secuencia interminable de números. Asegúrese de detener el bucle para evitar una ejecución infinita.
# Infinite generator example
def infinite_sequence():
num = 0
while True:
yield num
num += 1
# Using the infinite generator
for i in infinite_sequence():
if i > 5:
break
print(i) # Outputs: 0, 1, 2, 3, 4, 5Funciones generadoras con varios yields
Las funciones generadoras pueden tener varias instrucciones yield, lo que permite crear secuencias complejas:
# Multiple yields in a generator
def multi_yield():
yield "First"
yield "Second"
yield "Third"
for value in multi_yield():
print(value) # Outputs: First, Second, ThirdErrores comunes al usar generadores
Estos son algunos errores que debe evitar:
- Utilizar
returnen lugar deyielden una función generadora. - No consumir el generador con un bucle o con
next(). - Utilizar generadores para conjuntos de datos pequeños, donde las listas son más adecuadas.
¿Qué aprendió?
En esta lección, aprendió:
- Qué son los generadores y cómo funcionan en Python.
- Cómo usar
yieldpara crear funciones generadoras. - Las diferencias entre los generadores y las listas.
- Casos de uso de los generadores, como las secuencias infinitas y los conjuntos de datos grandes.
¡Excelente trabajo! Pasemos al siguiente tema.

Preguntas frecuentes
¿La lección «Generadores» es gratis?
Sí — el texto completo de «Generadores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python For Kids, actualiza a CoddyKit PRO. El curso de Python For Kids incluye 5 lecciones en total.
¿Qué aprenderé en «Generadores»?
Comprenda los generadores y su uso para crear iteradores. Practicas Python For Kids con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python For Kids?
No se requiere experiencia previa. Python For Kids en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 5.
¿Cuánto tiempo toma la lección «Generadores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python For Kids?
Sí. Cada lección de Python For Kids incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Decoradores
- Generadores
- Gestores de contexto (sentencias with)
- Comprensiones (de listas, conjuntos y diccionarios)
- Iteradores e iterables