certmundo.
es‑mx

6 min de lectura

Estructuras de repetición

Lección 7: Estructuras de repetición

Imagina que trabajas en una startup de fintech en Ciudad de México y tu jefe te pide que calcules el salario neto de 500 empleados. ¿Lo harías a mano, línea por línea? Por supuesto que no. Para eso existen las estructuras de repetición en Python: bloques de código que ejecutan una tarea una y otra vez hasta que se cumpla una condición. En esta lección vas a dominar los dos tipos principales de bucles y las herramientas que los acompañan.


El bucle for: cuando sabes cuántas veces repetir

El bucle for se usa cuando conoces de antemano el número de repeticiones o cuando quieres recorrer una colección de elementos. Su sintaxis es directa:

for variable in secuencia:
    # código que se repite

La palabra clave for le dice a Python "por cada elemento de esta secuencia, haz algo". Todavía no hemos visto listas formalmente (eso viene en la Lección 8), pero ya puedes usar for con la función range().

La función range()

range() genera una secuencia de números de forma eficiente. Puedes usarla de tres formas:

  • range(5) → genera 0, 1, 2, 3, 4
  • range(1, 6) → genera 1, 2, 3, 4, 5
  • range(0, 10, 2) → genera 0, 2, 4, 6, 8 (el tercer argumento es el paso)

El número final nunca se incluye. Este es uno de los errores más comunes entre quienes empiezan con Python, así que tenlo presente.

Ejemplo práctico: tabla de comisiones de ventas

Supón que eres desarrollador en una empresa de e-commerce en Guadalajara. Tu equipo de ventas gana una comisión del 8% sobre cada venta. Necesitas mostrar cuánto gana un vendedor si cierra ventas de distintos montos:

# Simulamos 5 ventas con montos crecientes (en MXN)
venta_base = 1000  # monto inicial en pesos mexicanos
comision = 0.08    # 8% de comisión

for numero_venta in range(1, 6):
    monto = venta_base * numero_venta       # calculamos el monto de cada venta
    ganancia = monto * comision             # aplicamos el porcentaje
    print(f"Venta {numero_venta}: ${monto:,} MXN → Comisión: ${ganancia:,.2f} MXN")

# Este bucle se ejecuta 5 veces (del 1 al 5 inclusive)
print("Cálculo completado.")

Cuando ejecutas este código verás cómo Python repite el mismo proceso para cada venta sin que tú escribas cinco bloques distintos. Eso es el poder real de la automatización.


El bucle while: cuando la repetición depende de una condición

El bucle while sigue ejecutándose mientras una condición sea verdadera. Es ideal cuando no sabes exactamente cuántas veces necesitas repetir algo.

while condicion:
    # código que se repite

El riesgo del while es el bucle infinito: si la condición nunca se vuelve falsa, el programa nunca termina. Por eso siempre debes asegurarte de que en algún punto dentro del bucle algo cambie para que la condición eventualmente falle.

Ejemplo práctico: simulador de ahorro para trabajo remoto

Muchos profesionistas en México sueñan con ahorrar suficiente para tomar un proyecto remoto de 3 meses. Veamos cuántos meses le toma a alguien ahorrar una meta de $30,000 MXN si aparta $3,500 pesos al mes:

# Simulador de ahorro mensual
meta = 30000       # meta de ahorro en MXN
ahorro_mensual = 3500
total_ahorrado = 0
meses = 0

while total_ahorrado < meta:
    meses += 1                         # contamos el mes
    total_ahorrado += ahorro_mensual   # sumamos el ahorro del mes
    print(f"Mes {meses}: ahorro acumulado ${total_ahorrado:,} MXN")

print(f"\
¡Meta alcanzada en {meses} meses!")

Nota cómo total_ahorrado crece en cada iteración hasta superar la meta. En ese momento, la condición total_ahorrado < meta se vuelve falsa y el bucle termina por sí solo.


Control de flujo dentro de los bucles: break y continue

A veces necesitas más control sobre cómo se comporta un bucle. Para eso existen dos palabras clave especiales.

break: salir del bucle antes de tiempo

break interrumpe el bucle inmediatamente, sin importar si la condición o la secuencia aún no ha terminado. Es útil cuando encuentras lo que buscabas y no tiene sentido seguir iterando.

Por ejemplo: estás revisando solicitudes de empleo en una plataforma de trabajo remoto y quieres detenerte en cuanto encuentres la primera candidata con más de 5 años de experiencia.

candidatos = [2, 1, 4, 6, 3, 7]  # años de experiencia de cada candidato

for experiencia in candidatos:
    if experiencia > 5:
        print(f"¡Candidato encontrado con {experiencia} años de experiencia!")
        break  # dejamos de buscar, ya encontramos lo que necesitábamos
    print(f"Candidato con {experiencia} años no cumple el requisito.")

Sin el break, Python revisaría los siete candidatos aunque ya hubiera encontrado uno válido. Con break, el programa es más eficiente.

continue: saltar una iteración y seguir

continue no detiene el bucle por completo: simplemente se salta el resto del código de esa iteración y pasa a la siguiente. Úsalo cuando quieras ignorar ciertos casos sin interrumpir todo el proceso.

Por ejemplo: estás procesando datos de ventas de distintas regiones de México, pero quieres omitir los registros con valor de cero (errores de captura) sin detener el análisis completo.

ventas = [1500, 0, 3200, 0, 800, 2100]

for venta in ventas:
    if venta == 0:
        continue  # ignoramos este registro y seguimos con el siguiente
    print(f"Procesando venta de ${venta:,} MXN")

La diferencia con break es fundamental: continue te dice "sáltate este caso" mientras que break dice "ya no quiero saber nada más de este bucle".


for vs while: ¿cuándo usar cada uno?

Una pregunta muy común entre quienes están aprendiendo es cuándo elegir un bucle sobre el otro. La regla práctica es sencilla:

Usa for cuando sabes cuántas veces vas a iterar o cuando tienes una colección definida de elementos que recorrer. Usa while cuando la repetición depende de algo que puede cambiar durante la ejecución, como una entrada del usuario, una conexión de red o el estado de un sistema.

En el mundo laboral de la tecnología en México y LATAM, verás for con mucha frecuencia al procesar listas de datos, registros de una base de datos o resultados de una API. El while aparece más en sistemas que monitorean condiciones en tiempo real, como aplicaciones de logística o plataformas de pagos que esperan una confirmación.


Errores comunes que debes evitar

Hay tres tropiezos muy frecuentes en esta etapa. El primero es olvidar la indentación: en Python, el código dentro del bucle debe estar sangrado (con cuatro espacios o una tabulación). Si no lo está, Python marcará un error de sintaxis o, peor aún, ejecutará el código fuera del bucle sin avisarte.

El segundo es crear bucles infinitos con while al olvidar modificar la variable de la condición dentro del bucle. Si eso ocurre, puedes interrumpir el programa con Ctrl + C en tu terminal.

El tercero es confundir range(5) con los números del 1 al 5. Recuerda: range(5) va del 0 al 4. Si quieres del 1 al 5, usa range(1, 6).


Lo que viene a continuación

En la Lección 8: Listas y tuplas vas a descubrir las primeras estructuras de datos reales de Python. Aprenderás a almacenar múltiples valores en una sola variable, a acceder a elementos por su posición, a modificar listas y a entender cuándo usar una tupla en lugar de una lista.

Las listas son probablemente la herramienta que más usarás como desarrollador en Python: desde manejar catálogos de productos en un e-commerce hasta procesar respuestas de APIs en aplicaciones modernas. Combinarás todo lo que aprendiste sobre bucles con estas nuevas estructuras para escribir programas mucho más poderosos y expresivos. ¡No te la pierdas!

Puntos clave

  • El bucle for recorre secuencias o usa range() cuando sabes cuántas repeticiones necesitas; el bucle while se repite mientras una condición sea verdadera y es ideal cuando el número de iteraciones depende del comportamiento del programa en ejecución.
  • break interrumpe completamente un bucle en cuanto se cumple una condición específica, mientras que continue solo omite la iteración actual y continúa con la siguiente, permitiéndote filtrar casos sin detener el proceso completo.
  • Los bucles infinitos son el error más peligroso del while: siempre asegúrate de que la variable que controla la condición cambie dentro del bucle, y recuerda que range(n) genera números del 0 al n-1, no del 1 al n.

Comparte esta lección:

Estructuras de repetición | Curso de Python Gratis para Principiantes — De Cero a tu Primer Programa | Certmundo