QuieroProgramar por Rodri Gonzalez
Python · Lección 16 de 27

While (bucle condicional)

El bucle while repite un bloque de código mientras una condición sea verdadera. Es la herramienta ideal cuando no sabés de antemano cuántas veces necesitás repetir algo: simulaciones mes a mes, validación de datos, reintentos hasta éxito.

80–100 min Prerrequisitos: 06 Condicionales, 08 Listas
01

Concepto teórico

¿Qué es un bucle while?

Un bucle while ejecuta un bloque de código repetidamente mientras una condición sea True. Cuando la condición se vuelve False, el bucle se detiene y la ejecución continúa con la siguiente línea después del while.

while condición:
    # este bloque se repite mientras condición sea True
    hacer_algo()
    # IMPORTANTE: algo dentro del bloque debe eventualmente
    # hacer que la condición sea False, o el loop es infinito

El flujo es: (1) evaluar condición → (2) si es True, ejecutar el bloque → (3) volver a (1) → (4) si es False, salir del while.

Diferencia con if: un if evalúa la condición UNA vez. Un while la evalúa MUCHAS veces, ejecutando el bloque en cada iteración. El while es como un if que se repite automáticamente hasta que la condición cambie.

El peligro del loop infinito

Si nada dentro del bloque modifica la condición para que eventualmente sea False, el bucle corre para siempre. Esto se llama loop infinito y es el error más grave que podés cometer con while:

# ❌ LOOP INFINITO — la condición nunca cambia
x = 10
while x > 0:
    print(x)    # imprime 10 para siempre
    # falta: x -= 1

# ✅ CORRECTO — la variable se modifica en cada iteración
x = 10
while x > 0:
    print(x)
    x -= 1      # eventualmente x llega a 0 → condición False
Regla de supervivencia: antes de escribir un while, preguntate: "¿qué línea dentro del bloque va a hacer que la condición cambie?". Si no tenés respuesta clara, vas a crear un loop infinito. Si te pasa en Pyodide (este editor), recargá la página.

break y continue

break — sale del bucle inmediatamente, sin importar si la condición sigue siendo True. Es como un "basta, salgo ya".

continue — salta el resto de la iteración actual y vuelve al inicio del while para evaluar la condición de nuevo. Es como un "salteo esta vuelta".

El patrón while True: ... break es muy común cuando la condición de salida está en el medio del bloque (no al inicio):

while True:
    dato = obtener_dato()
    if dato == "salir":
        break           # sale del while
    if dato == "":
        continue        # vuelve a pedir dato
    procesar(dato)

Contadores y acumuladores

Dos patrones fundamentales que usás constantemente con while (y también con for):

Analogía bancaria: un cajero automático usa while internamente: while intentos < 3 and not pin_correcto: → le pide el PIN al usuario, cuenta los intentos, y si falla 3 veces o acertó, sale del loop. El contador (intentos) controla el límite y la condición booleana (pin_correcto) controla el éxito.

¿Cuándo while vs for?

Usá while cuando… Usá for cuando…
No sabés cuántas repeticiones necesitás Sabés exactamente cuántas (o recorrés una colección)
La condición de salida es compleja Iterás sobre una lista, rango, diccionario
Simulaciones hasta que se cumpla una meta Procesás cada elemento de un dataset
Reintentos con límite Conteos y acumulaciones sobre datos conocidos
Input validation loops Recorridos de principio a fin
En análisis de datos: while es ideal para simulaciones: "¿cuántos meses necesito para duplicar mi inversión al 5% mensual?" No sabés la respuesta antes de ejecutar — el while va calculando mes a mes hasta que la condición se cumpla.
Tip profesional: en Python, el 80% de las iteraciones se hacen con for (recorrer datos). El while se reserva para los casos donde la cantidad de repeticiones depende de una condición dinámica. Si te encontrás usando while para recorrer una lista con un índice manual, probablemente deberías usar for.
02

Ejemplos explicados paso a paso

Ejemplo 1: Cuenta regresiva y while básico

ejemplo_01_basico.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: Simulación de interés compuesto — ¿cuándo duplico mi plata?

ejemplo_02_simulacion.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 3: break y continue en acción

ejemplo_03_break_continue.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 4: Amortización de préstamo (sistema francés simplificado)

ejemplo_04_amortizacion.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 5: while vs for — cuándo usar cada uno

ejemplo_05_while_vs_for.pyPython

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Patrón Estructura Uso
While básico while cond: bloque Repetir mientras se cumpla
Contador n=0; while cond: n+=1 Contar iteraciones
Acumulador total=0; while: total+=v Sumar valores
while True + break while True: if x: break Condición en medio del bloque
Sentinel loop while dato != fin: Procesar hasta valor especial
Retry con límite while intentos < max: Reintentos con tope
Keyword Qué hace Cuándo usar
break Sale del while inmediatamente Encontraste lo que buscabas / error fatal
continue Salta al inicio del while Este dato es inválido, seguí con el próximo
else (en while) Se ejecuta si NO hubo break Verificar si el loop terminó normalmente
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: Cuenta regresiva desde 10

Imprimí los números del 10 al 1 con while y después ¡Despegue!. Debe incluir ¡Despegue!.

ejercicio_01.pyDebe incluir "¡Despegue!"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Sumar hasta superar un objetivo

Empezá con total = 0. Sumá 25000 por iteración hasta superar $100,000. Imprimí cuántas iteraciones necesitaste. Debe incluir 5.

ejercicio_02.pyDebe incluir "5"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: Dividir hasta que sea menor que 1

Empezá con n = 1024. Dividilo por 2 en cada iteración hasta que sea menor que 1. Contá cuántas divisiones hiciste. Debe incluir 11.

ejercicio_03.pyDebe incluir "11"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: ¿Cuántos meses para duplicar inversión?

Capital $200,000 al 4% mensual compuesto. ¿Cuántos meses para duplicar? Debe incluir 18.

ejercicio_04.pyDebe incluir "18"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: Procesar cola con while + pop

Dada tareas = ["Limpiar datos","Calcular métricas","Generar reporte","Enviar email"], procesá cada una con while tareas: y .pop(0). Debe incluir Generar reporte.

ejercicio_05.pyDebe incluir "Generar reporte"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: break para buscar primer match

Dada una lista de scores, encontrá el primero que supere 750 usando while + break. Debe incluir 810.

ejercicio_06.pyDebe incluir "810"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Simulación de ahorro mensual

Ahorrás $50,000/mes con rendimiento de 3% mensual sobre el acumulado. ¿Cuántos meses para llegar a $1,000,000? Imprimí cada mes. Debe incluir Objetivo alcanzado.

ejercicio_07.pyDebe incluir "Objetivo alcanzado"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Amortización de deuda

Deuda de $300,000 al 5% mensual. Pagás $25,000/mes. ¿En cuántos meses saldás? Si la cuota no cubre el interés, imprimí Deuda impagable. Debe incluir meses.

ejercicio_08.pyDebe incluir "meses"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Fibonacci hasta superar un valor

Generá la secuencia de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13...) hasta superar 1000. Imprimí la secuencia. Debe incluir 1597.

ejercicio_09.pyDebe incluir "1597"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Simulación bancaria completa

Simulá 24 meses de una cuenta: saldo inicial $500,000. Cada mes: sumá sueldo $350,000, restá gastos $280,000, aplicá rendimiento 0.2% sobre saldo positivo. Si el saldo baja de 0, imprimí alerta y break. Al final imprimí un resumen con saldo final y meses transcurridos. Debe incluir RESUMEN.

ejercicio_10_desafio.pyDebe incluir "RESUMEN"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (17 · For) vas a dominar el bucle más usado de Python: for con range, listas, diccionarios, enumerate, zip, break/continue, y comprensiones — la herramienta que usás el 80% del tiempo.

Recursos: Python docs — while