Imagina que tienes que imprimir los números del 1 al 100. Sin bucles, tendrías que escribir 100 líneas de código. Con un bucle, lo haces en dos. Así de poderosos son.
Los bucles son uno de los conceptos más importantes de la programación, y en Python son especialmente sencillos de entender y usar. En este artículo vas a aprender qué son, cuándo usar cada uno y cómo sacarles el máximo provecho desde el primer día.
¿Listo? Vamos.
¿Qué es un bucle en Python?
Un bucle —también llamado loop o ciclo— es una instrucción que le dice a Python: "repite esto una y otra vez hasta que se cumpla una condición".
En la vida real los bucles están en todas partes. Cuando lavas los platos, repites el mismo proceso con cada plato hasta que no quede ninguno sucio. Cuando revisas tu correo, abres cada mensaje uno por uno hasta leerlos todos. Eso, traducido a código, es exactamente un bucle.
En Python existen dos tipos principales:
- 🔁 El bucle
for— repite algo un número definido de veces o recorre una lista de elementos. - 🔄 El bucle
while— repite algo mientras una condición sea verdadera, sin importar cuántas veces sea necesario.
Cada uno tiene su momento. Aprender cuándo usar cada uno es parte del arte de programar.
🔁 El bucle for en Python
El bucle for se usa cuando sabes de antemano cuántas veces quieres repetir algo, o cuando quieres recorrer los elementos de una lista, palabra por palabra, número por número.
Su estructura básica es:
for variable in secuencia:
# código que se repiteLa variable toma el valor de cada elemento de la secuencia en cada vuelta del bucle. Cuando se acaban los elementos, el bucle termina solo.
Ejemplo 1: Contar del 1 al 5
for numero in range(1, 6):
print(numero)1
2
3
4
5¿Qué es range(1, 6)? Es una función de Python que genera una secuencia de números. El primer número es el inicio (incluido) y el segundo es el final (excluido). Por eso range(1, 6) genera: 1, 2, 3, 4, 5. El 6 no aparece.
💡 Truco para recordarlo: el segundo número en range() es como una puerta cerrada. Llegas hasta ahí pero no entras.
Ejemplo 2: Recorrer una lista
lenguajes = ["Python", "JavaScript", "SQL", "Java"]
for lenguaje in lenguajes:
print(f"Me gustaría aprender {lenguaje}")Me gustaría aprender Python
Me gustaría aprender JavaScript
Me gustaría aprender SQL
Me gustaría aprender JavaEl bucle tomó cada elemento de la lista y lo procesó uno por uno. Automáticamente. Sin que tuvieras que hacer nada más.
Ejemplo 3: Recorrer una cadena de texto
¿Sabías que también puedes recorrer las letras de una palabra? En Python, los textos también son secuencias:
palabra = "Python"
for letra in palabra:
print(letra)P
y
t
h
o
nEjemplo 4: range() con un solo parámetro
Si solo le pasas un número a range(), empieza desde el 0:
for i in range(5):
print(i)0
1
2
3
4Este patrón —for i in range(n)— es uno de los más usados en Python. Lo verás en todos lados.
Ejemplo 5: Bucle for con un paso personalizado
range() también acepta un tercer parámetro: el paso, que indica de cuánto en cuánto avanza.
# Números pares del 0 al 10
for numero in range(0, 11, 2):
print(numero)0
2
4
6
8
10# Cuenta regresiva
for numero in range(10, 0, -1):
print(numero)10
9
8
7
6
5
4
3
2
1Sí, también puedes contar hacia atrás. Solo usa un paso negativo.
🔄 El bucle while en Python
El bucle while es diferente. No recorre una secuencia fija: sigue repitiendo mientras una condición sea verdadera. Cuando la condición se vuelve falsa, el bucle se detiene.
Su estructura básica es:
while condicion:
# código que se repitePiénsalo así: for dice "hazlo N veces", mientras que while dice "hazlo hasta que te diga que pares".
Ejemplo 1: Contar del 1 al 5 con while
contador = 1
while contador <= 5:
print(contador)
contador += 11
2
3
4
5Analicemos qué pasó aquí:
- Empezamos con
contador = 1 - Python verifica: ¿es
contadormenor o igual a 5? Sí → ejecuta el código - Imprime el valor y suma 1 al contador
- Verifica de nuevo la condición... y así hasta que
contadorllega a 6 y la condición es falsa
Ejemplo 2: Pedir datos hasta que el usuario ingrese algo válido
Este es un caso de uso clásico del bucle while: cuando no sabes cuántas veces el usuario va a equivocarse antes de ingresar correctamente.
respuesta = ""
while respuesta != "salir":
respuesta = input("Escribe algo (o 'salir' para terminar): ")
print(f"Escribiste: {respuesta}")
print("¡Hasta luego!")El programa seguirá pidiendo input hasta que el usuario escriba exactamente "salir". No importa si lo hace en el intento 2 o en el intento 20. El while aguanta.
Ejemplo 3: Simulando un juego sencillo
import random
numero_secreto = random.randint(1, 10)
intento = 0
while intento != numero_secreto:
intento = int(input("Adivina el número (entre 1 y 10): "))
if intento < numero_secreto:
print("Muy bajo, intenta de nuevo.")
elif intento > numero_secreto:
print("Muy alto, intenta de nuevo.")
print(f"¡Correcto! El número era {numero_secreto}. 🎉")Con apenas unas pocas líneas acabas de crear un juego funcional. Eso es Python.
⚠️ El bucle infinito: el villano de los principiantes
Si usas while y olvidas actualizar la condición para que eventualmente sea falsa, créate un bucle infinito: un programa que nunca termina y congela tu computadora.
# ❌ PELIGRO: esto nunca termina
contador = 1
while contador <= 5:
print(contador)
# ¡Olvidamos sumar 1 al contador!Este código imprimirá 1 para siempre hasta que lo detengas a la fuerza. Si te pasa, presiona Ctrl + C en la terminal para interrumpir el programa.
La regla de oro: siempre asegúrate de que la condición del while eventualmente se vuelva falsa.
🛑 break y continue: controlando el flujo del bucle
A veces necesitas más control sobre lo que pasa dentro de un bucle. Para eso existen dos palabras clave muy poderosas.
break — sale del bucle inmediatamente
for numero in range(1, 11):
if numero == 6:
print("¡Encontré el 6! Saliendo del bucle.")
break
print(numero)1
2
3
4
5
¡Encontré el 6! Saliendo del bucle.Cuando Python encontró el 6, salió del bucle sin procesar el 7, 8, 9 ni 10. El break es como un botón de emergencia.
continue — salta a la siguiente vuelta
for numero in range(1, 11):
if numero % 2 == 0:
continue # salta los números pares
print(numero)1
3
5
7
9Cuando Python encontraba un número par, el continue le decía "sáltate este, ve al siguiente". Resultado: solo se imprimieron los impares.
¿Cuándo usar for y cuándo usar while?
Esta es la pregunta del millón. Aquí va la regla práctica:
- ✅ Usa
forcuando sabes cuántas veces vas a repetir algo, o cuando tienes una lista o secuencia que recorrer. - ✅ Usa
whilecuando no sabes cuántas repeticiones necesitas y dependes de que se cumpla una condición.
En la práctica, el bucle for es el más usado en el día a día. El while brilla en situaciones donde el número de repeticiones es impredecible: validaciones de formularios, juegos, conexiones a servidores, etc.
Errores comunes con bucles en Python
Olvidar los dos puntos al final
for i in range(5) # ❌ SyntaxError
print(i)
for i in range(5): # ✅ Correcto
print(i)No respetar la indentación
En Python, el código dentro de un bucle debe estar indentado (con 4 espacios o un tab). Si no lo está, Python no sabe qué líneas pertenecen al bucle.
for i in range(3):
print(i) # ❌ IndentationError
for i in range(3):
print(i) # ✅ CorrectoModificar la lista que estás recorriendo
# ❌ Esto puede causar comportamientos inesperados
numeros = [1, 2, 3, 4, 5]
for n in numeros:
numeros.remove(n)Nunca modifiques una lista mientras la estás recorriendo con for. Si necesitas hacerlo, trabaja con una copia de la lista.
Ejemplo final: juntando todo
Vamos a escribir un programa que usa todo lo que aprendiste hoy: un bucle for, un bucle while, break y range().
# Tabla de multiplicar interactiva
continuar = "s"
while continuar == "s":
numero = int(input("\n¿De qué número quieres la tabla? "))
print(f"\n📊 Tabla del {numero}:\n")
for i in range(1, 11):
resultado = numero * i
print(f" {numero} x {i} = {resultado}")
continuar = input("\n¿Ver otra tabla? (s/n): ").lower()
print("\n¡Hasta luego! Sigue practicando Python. 🐍")Este programa le pregunta al usuario qué tabla quiere ver, la muestra completa, y le pregunta si quiere ver otra. Sigue corriendo hasta que el usuario decide parar. Simple, funcional y completamente tuyo.
Resumen: lo que aprendiste hoy
- ✅ Un bucle repite un bloque de código varias veces automáticamente
- ✅ El bucle
forrecorre secuencias o repite un número definido de veces - ✅
range(inicio, fin, paso)genera secuencias de números para usar confor - ✅ El bucle
whilerepite mientras una condición sea verdadera - ✅
breaksale del bucle inmediatamente - ✅
continuesalta a la siguiente vuelta del bucle - ✅ Los bucles infinitos ocurren cuando la condición del
whilenunca se vuelve falsa
🧪 ¿Ya entendiste los bucles? Ponlo a prueba
Los bucles son uno de los temas que más aparecen en cualquier evaluación de Python básico. Y hay una manera muy rápida de saber si realmente los tienes claros: haciendo el test.
Son preguntas cortas, sin trampa y pensadas para principiantes. En pocos minutos sabrás exactamente qué tan sólidos están tus fundamentos y qué temas vale la pena repasar.
👉 Hacer el test de Python básico
¿Tuviste alguna duda con el for o el while? ¿Caíste en algún bucle infinito accidentalmente? Cuéntanos abajo en los comentarios 👇 — todos hemos pasado por eso. 😄
No hay comentarios todavía. Sé el primero en compartir tu opinión.