Bucles en Python: for, while, break y continue

Actualizado el: 20/08/2026
Tempo de leitura: 3 minutos
Símbolo de repetição ao lado do logotipo do Python pensativo, representando o conceito de loops na programação em Python.

Los bucles en Python permiten repetir instrucciones sin copiar el mismo código muchas veces. for recorre elementos de un iterable, mientras que while continúa mientras una condición sea verdadera. Las instrucciones break, continue y else ofrecen control adicional.

En esta guía aprenderás los patrones principales con listas, range(), diccionarios, validación de entrada y bucles anidados. El tutorial oficial de control de flujo de Python documenta estas construcciones, y la referencia de range() explica sus argumentos.

Recorrer una lista con for

lenguajes = ["Python", "JavaScript", "Go"]

for lenguaje in lenguajes:
    print(lenguaje)

El bucle recibe cada elemento directamente. No necesitas administrar un índice cuando solamente utilizas el valor.

Usar range()

for numero in range(5):
    print(numero)

range(5) produce valores desde 0 hasta 4. También admite inicio y paso:

for numero in range(2, 11, 2):
    print(numero)

La guía específica de range() en Python incluye rangos descendentes y errores frecuentes.

Obtener índice y valor

tareas = ["instalar", "configurar", "probar"]

for posicion, tarea in enumerate(tareas, start=1):
    print(f"{posicion}. {tarea}")

enumerate() en Python evita contadores manuales y permite elegir el valor inicial.

Recorrer diccionarios

precios = {
    "teclado": 45.0,
    "ratón": 20.0,
    "monitor": 210.0,
}

for producto, precio in precios.items():
    print(producto, precio)

Un bucle directo sobre un diccionario produce claves. items() devuelve pares de clave y valor. Consulta la guía de diccionarios en Python.

Combinar iterables con zip()

productos = ["Teclado", "Ratón", "Monitor"]
precios = [45.0, 20.0, 210.0]

for producto, precio in zip(
    productos,
    precios,
    strict=True,
):
    print(f"{producto}: {precio:.2f}")

strict=True detecta longitudes diferentes en versiones modernas de Python.

Bucles while

intentos = 3

while intentos > 0:
    print(f"Quedan {intentos} intentos")
    intentos -= 1

print("Fin")

Un while necesita que su condición pueda cambiar. Si el estado nunca se modifica, el programa puede entrar en un bucle infinito.

Validar entrada con while

while True:
    texto = input("Edad: ").strip()

    try:
        edad = int(texto)
    except ValueError:
        print("Introduce un número entero")
        continue

    if edad < 0:
        print("La edad no puede ser negativa")
        continue

    break

print(f"Edad válida: {edad}")

La guía de input() en Python cubre conversiones, menús y validación.

Detener con break

numeros = [4, 8, 15, 16, 23, 42]
objetivo = 15

for numero in numeros:
    if numero == objetivo:
        print("Encontrado")
        break

break termina el bucle más cercano. Úsalo cuando continuar ya no aporta trabajo útil.

Saltar con continue

valores = [10, -2, 7, -5, 3]

for valor in valores:
    if valor < 0:
        continue

    print(valor)

continue pasa a la siguiente iteración. No debe ocultar una lógica difícil de seguir.

else en bucles

numeros = [2, 4, 6, 8]
objetivo = 5

for numero in numeros:
    if numero == objetivo:
        print("Encontrado")
        break
else:
    print("No encontrado")

El bloque else se ejecuta si el bucle termina sin break. Es útil en búsquedas y validaciones.

Bucles anidados

filas = 3
columnas = 4

for fila in range(filas):
    for columna in range(columnas):
        print(f"({fila}, {columna})")

El número total de iteraciones se multiplica. Revisa el tamaño de los datos antes de anidar varios recorridos.

Comprensiones frente a bucles

numeros = range(10)
cuadrados_pares = [
    numero ** 2
    for numero in numeros
    if numero % 2 == 0
]

Una comprensión es adecuada para una transformación breve con un filtro sencillo. Para varias acciones, manejo de errores o condiciones complejas, usa un bucle normal. La guía de list comprehensions muestra la diferencia.

Proyecto práctico: resumen de ventas

ventas = [
    {"producto": "Teclado", "cantidad": 2, "precio": 45.0},
    {"producto": "Ratón", "cantidad": 4, "precio": 20.0},
    {"producto": "Monitor", "cantidad": 1, "precio": 210.0},
]

total = 0.0

for numero, venta in enumerate(ventas, start=1):
    subtotal = venta["cantidad"] * venta["precio"]
    total += subtotal
    print(
        f"{numero}. {venta['producto']}: "
        f"{subtotal:.2f}"
    )

print(f"Total: {total:.2f}")

Errores frecuentes

  • Olvidar actualizar la condición de un while.
  • Modificar una lista mientras se recorre.
  • Usar range(len(lista)) cuando basta recorrer valores.
  • Colocar break o continue en el nivel equivocado.
  • Crear demasiados bucles anidados.
  • Confundir el else del bucle con el de un if.

for o while

  • Usa for para recorrer una colección o una secuencia conocida.
  • Usa while cuando la repetición depende de un estado o una condición.
  • Usa una función integrada cuando exprese directamente la operación, como sum(), any() o all().

Conclusión

Los bucles en Python son más claros cuando recorren directamente los datos y mantienen una condición de salida visible. Prefiere for para iterables, while para estados, enumerate() para posiciones y comprensiones solamente para transformaciones sencillas. Un bucle pequeño y predecible es más fácil de probar y mantener.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    notebook com código saindo da tela
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Variables: asignación, tipos y alcance en Python

    Aprende variables en Python: asignación, nombres, tipos, conversiones, referencias, mutabilidad, alcance, constantes, None y errores frecuentes.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Diferença entre operadores is e == em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    == vs is en Python: igualdad vs identidad

    Entiende la diferencia entre == e is en Python, igualdad, identidad, None, interning, copias superficiales, deepcopy y objetos personalizados.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Menu interativo no terminal criado com Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Menú interactivo en terminal con Python

    Crea un menú interactivo en Python con while, funciones, diccionarios, validación, submenús, persistencia JSON y manejo seguro de errores.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    ícone de loop com o texto 'While' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    while: repite acciones con condiciones en Python

    Aprende bucles while en Python con condiciones, validación, menús, break, continue, else, centinelas, reintentos y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Imagem de um quadro negro com várias interrogações no lugar de lâmpadas, e uma lâmpada conectada no meio
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    if, elif y else: lógica condicional en Python

    Aprende if, elif y else en Python con comparaciones, operadores lógicos, validación, rangos, menús, retornos tempranos y pruebas.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Manipulação de dados JSON em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    JSON en Python: leer, escribir y validar datos

    Aprende JSON en Python con load, loads, dump, dumps, archivos UTF-8, validación, APIs, Decimal, fechas y escritura segura.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026