(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)
BUCLES WHILE
Control de flujo, contadores y acumuladores.

El Bucle While
El bucle while es tu herramienta para repetir acciones en Python hasta que una condición específica se cumpla.
En lugar de escribir el mismo código repetidamente, se define una condición al principio del bucle, luego el programa ejecutará las instrucciones dentro del bucle mientras esa condición sea verdadera (True), como si fuera una puerta giratoria que sigue girando hasta que le digas “stop”.
Imagina una conversación: el programa te hace una pregunta y continúa haciéndola hasta que obtienes la respuesta correcta. Así funciona un while: se repite la ejecución del código dentro del bucle mientras se cumple la condición inicial. Una vez que la condición ya no sea verdadera, el bucle se detiene y el programa avanza con las siguientes instrucciones.

¡Probemos while!
Comencemos con un programa sencillo que utiliza un bucle while. Definiremos una variable llamada numero que inicia en 1. El bucle while continuará ejecutándose mientras numero sea menor o igual a 10.
En cada “iteración” del bucle, el programa mostrará el valor actual de numero y luego lo aumentará en 1. Imagina como si estuviéramos contando: empezamos en 1 y seguimos aumentando hasta llegar a 10. Cuando numero alcance 11, la condición numero <= 10 ya no se cumplirá, el bucle se detendrá y el programa continuará con otras instrucciones (que por ahora no tenemos).
El resultado final será una lista de números del 1 al 10 impresos en el terminal, uno por línea.
Código:
# Inicializamos la variable numero = 1 while numero <= 10: print(numero) # Incrementamos el valor de numero # en 1 en cada iteración numero = numero + 1
Salida por pantalla:
1 2 3 4 5 6 7 8 9 10
Contadores
Los contadores son herramientas esenciales en programación, permitiendo registrar cuántas veces ocurre una acción específica. Imaginemos una variable como una caja que almacena información numérica. Un contador funciona incrementándose (o decrementándose) cada vez que se cumple una condición determinada, como la ejecución de un ciclo o la ocurrencia de un evento.
Este principio es fundamental en multitud de tareas, desde calcular el número de veces que se ha accedido a una página web hasta determinar cuántos elementos se han procesado en una lista.
Código:
# Inicializamos el contador numero = 1 while numero <= 10: print(numero) # Incrementamos el contador en 1 # en cada iteración numero = numero + 1
Salida por pantalla:
1 2 3 4 5 6 7 8 9 10
¿Cómo funciona un contador?
Como ya habrás notado, los contadores son componentes esenciales en tu arsenal como programador. Para usarlos eficazmente, recuerda estos pasos clave:
- Inicialización: Comienza asignándole un valor inicial al contador, generalmente cero (0). A veces, podés necesitar comenzar con otro valor dependiendo del contexto de tu programa.
- Incremento dentro del bucle: Cada vez que la acción que deseas contar ocurra, incrementá el valor del contador en 1. Esto se suele hacer dentro del cuerpo del bucle “for” o “while“.
- Resultado final: Una vez que el bucle termine, el valor del contador reflejará la cantidad total de veces que se ejecutó la acción dentro del bucle.
¡Con estos sencillos pasos, dominarás el uso eficiente de los contadores!

Este ejemplo ilustra el uso efectivo de un contador dentro de un bucle “while“:
- Inicialización: El contador comienza en 0.
- Condición del bucle: El bucle continúa ejecutándose mientras el valor del contador sea menor que 5.
- Incremento dentro del bucle: En cada iteración, se muestra el número de “vuelta” y luego se incrementa el contador en 1.
- Resultado final: Al terminar el bucle, el valor del contador es 5, reflejando el número total de veces que se ejecutó el bucle.
En esencia, el contador registra cada ejecución del bucle, y al finalizar este, su valor refleja la cantidad total de iteraciones.
Código:
# En bucle se repite 5 veces
contador = 0
while contador < 5:
print("Vuelta", contador + 1)
# Cada vez que ocurre la acción,
# sumamos 1 al contador
contador = contador + 1
# Al final del bucle, mostramos el
# valor del contador
print("El contador llegó a:", contador)
Salida por pantalla:
Vuelta 1 Vuelta 2 Vuelta 3 Vuelta 4 Vuelta 5 El contador llegó a: 5
EJEMPLO
Contar intentos de ingreso de datos con while
Para gestionar situaciones donde es necesario saber cuántos errores cometió el usuario antes de ingresar una información válida, podemos usar un contador.
En el ejemplo del sistema de inventario, imaginemos que necesitamos saber cuántos productos va a agregar un usuario. Si ingresa una cantidad incorrecta (negativa), necesitamos contar cuántos intentos fallidos tuvo antes de ingresar un valor válido. Para esto, usamos una variable llamada intentos como contador. Cada vez que el usuario ingrese un valor inválido (menor o igual a 0), incrementamos el contador con la instrucción intentos += 1.
Al finalizar el bucle, podemos mostrar el valor de intentos, indicando cuántos errores se cometieron antes de obtener una entrada válida.
Código:
intentos = 0 # Inicializamos el contador
cantidad = int(input("Ingresá la cantidad de productos: "))
while cantidad <= 0:
# Aumentamos el contador por cada error
intentos = intentos + 1
print("Error: La cantidad debe ser mayor que 0.")
cantidad = int(input("Por favor, ingresá nuevamente la cantidad de productos: "))
print(f"Ingresaste un valor válido después de {intentos} intentos.")
Salida por pantalla:
Ingresá la cantidad de productos: 0 Error: La cantidad debe ser mayor que 0. Por favor, ingresá nuevamente la cantidad de productos: 0 Error: La cantidad debe ser mayor que 0. Por favor, ingresá nuevamente la cantidad de productos: 0 Error: La cantidad debe ser mayor que 0. Por favor, ingresá nuevamente la cantidad de productos: 2 Ingresaste un valor válido después de 3 intentos.
Acumuladores
El acumulador es un concepto similar al contador, pero con un enfoque más flexible. En lugar de simplemente sumar 1 en cada iteración, el acumulador va sumando un valor que puede variar según tus necesidades.
Mientras que un contador te dice cuántas veces ocurrió algo, el acumulador te proporciona una medida del total
acumulado a lo largo del tiempo o de una serie de acciones.
Al igual que el contador incrementa su valor en 1 cada vez, el acumulador suma el valor que le asignes en cada iteración del bucle.

Imaginá una tienda que durante 3 días registra sus ventas diarias. Este código simula ese proceso:
- Se utiliza un acumulador llamado “total” para registrar la suma de las ventas de cada día.
- Cada día, se solicita al usuario ingresar el monto de las ventas del día, y este valor se agrega al acumulador “total“.
- Un contador llamado “dia” controla cuántos días se han registrado.
Al final de los 3 días (al terminar el bucle), se muestra el valor total acumulado en “total“, que representa el monto total de ventas durante los tres días.
Código:
total = 0 # Inicializamos el acumulador en cero
dia = 1 # Inicializamos el contador en cero
# Simulamos ventas de productos en una tienda, usando un bucle
# Supongamos que ingresamos productos durante 3 días
while dia <= 3:
print("Día", dia)
venta = float(input("Monto de las ventas del día: "))
total = total + venta # Acumulamos el monto en el acumulador
dia = dia + 1 # Incrementamos el contador:
# Al final del bucle, mostramos el total acumulado
print("El total de las ventas ingresadas es: $", total)
Salida por pantalla:
Día 1 Monto de las ventas del día: 100 Día 2 Monto de las ventas del día: 200 Día 3 Monto de las ventas del día: 300 El total de las ventas ingresadas es: $ 600.0
¿Dónde usar un acumulador?
Los acumuladores son herramientas esenciales cuando necesitas sumar valores progresivamente para obtener un resultado final.
Pensalo como una caja que se va llenando con cada nuevo valor, acumulando la suma total a lo largo del tiempo o de una serie de acciones. Algunos ejemplos prácticos incluyen:
Ventas: Similar a nuestro ejemplo anterior, el acumulador se puede usar para registrar las ventas diarias o semanales, sumando los valores individuales y proporcionando un resumen completo de las ganancias.
Inventario: Cada vez que se agrega un producto al inventario, el acumulador registra su cantidad, dando un total actualizado del stock disponible.
Valor del Stock: Al sumar el precio unitario de cada producto por la cantidad en existencia, el acumulador te proporciona el valor total del inventario.
EJEMPLO
Contar la cantidad de productos en un inventario.
Los acumuladores también son útiles para registrar cantidades como el número total de productos en un inventario.
Cada vez que se agregan productos, el acumulador se incrementa, reflejando la cantidad total en tiempo real.
Código:
total_productos = 0 # Inicializamos el contador
for dia in range(3): # Supongamos que ingresamos productos durante 3 días
print("Día",dia + 1, ":")
productos_agregados = int(input("Productos ingresados en el día: "))
total_productos += productos_agregados
print("Se ingresaron",total_productos,"productos en total al inventario.")
Salida por pantalla:
Día 1 : Productos ingresados en el día: 10 Día 2 : Productos ingresados en el día: 4 Día 3 : Productos ingresados en el día: 7 Se ingresaron 21 productos en total al inventario.
Bucle While y Cadenas
Los bucles “while” son herramientas poderosas para recorrer cadenas de texto en Python. Permiten ejecutar un bloque de código repetidamente mientras se cumple una condición específica.
Al usar un “while“, podés procesar cada carácter individualmente dentro de la cadena. Para lograr esto:
- Se necesita una variable (generalmente llamada “índice“) que actúe como marcador, comenzando en 0 para representar el primer carácter.
- El bucle se ejecuta mientras el índice sea menor a la longitud total de la cadena (obtenida con
len(cadena)). - En cada iteración, podés acceder al carácter actual utilizando el índice entre corchetes:
cadena[índice].
A medida que el bucle avanza, el índice aumenta, permitiendo recorrer la cadena carácter por carácter hasta llegar al final.
Este programa te permite explorar cada carácter de una cadena paso a paso:
- Inicio: Se establece un índice inicializado en 0 para señalar la posición del primer carácter.
- Recorrido: El bucle “while” se activa y continúa mientras el índice sea menor que la longitud total de la cadena.
- Mostrar Caracteres: En cada iteración, el programa muestra:
- El número del carácter (índice + 1 para contar desde 1 en lugar de 0).
- El carácter real utilizando
cadena[índice], accediendo a él por su posición dentro de la cadena.
Finalización: El bucle continúa hasta que el índice alcanza la longitud de la cadena, marcando el fin del recorrido.)
Avance: Después de mostrar el carácter, se incrementa el índice para pasar al siguiente carácter en la cadena.
Código:
# Definimos la cadena de texto
cadena = "Red-Handed"
# Inicializamos el contador para los índices
indice = 0
# Usamos un bucle while para recorrer la cadena
while indice < len(cadena):
# Mostramos el número y el carácter
print("caracter", indice + 1, ":", cadena[indice])
# Incrementamos el contador en 1
indice = indice + 1
Salida por pantalla:
caracter 1 : R caracter 2 : e caracter 3 : d caracter 4 : - caracter 5 : H caracter 6 : a caracter 7 : n caracter 8 : d caracter 9 : e caracter 10 : d
Solicitar y validar un dato con while
En este ejemplo, el programa solicita al usuario que ingrese una cantidad. Si el número introducido es menor o igual a cero, se le muestra un mensaje explicando que el valor no es válido y se le vuelve a pedir la cantidad.
Este proceso se repite hasta que el usuario introduzca un número positivo. Una vez que se obtiene un dato correcto, el bucle se interrumpe y el programa continúa su ejecución.
Este tipo de validación es crucial cuando se busca garantizar que los datos ingresados por el usuario sean precisos y útiles.
Código:
cantidad = int(input("Ingresá la cantidad de productos: "))
while cantidad <= 0:
print("La cantidad debe ser mayor que 0.")
cantidad = int(input("Por favor, ingresá nuevamente la cantidad de productos: "))
print("Has ingresado una cantidad válida:", cantidad)
Salida por pantalla:
Ingresá la cantidad de productos: 0 La cantidad debe ser mayor que 0. Por favor, ingresá nuevamente la cantidad de productos: 10 Has ingresado una cantidad válida: 10
Implementar un menú interactivo con while
Los bucles “while” son ideales para crear menús interactivos que permanezcan activos hasta que el usuario elija salir. Este concepto es fundamental en programas, donde se necesita gestionar un inventario mediante una interfaz amigable.
Un ejemplo sencillo muestra cómo un bucle “while” mantiene un menú visible hasta que el usuario selecciona la opción de salida (“Salir“). La condición opcion != 3 asegura que el bucle continúe ejecutándose mientras la opción elegida no sea “Salir“.
El uso de “\n” en el primer print() crea un salto de línea para mejorar la legibilidad del menú. Si el usuario ingresa una opción inválida, se le muestra un mensaje de error y el menú vuelve a aparecer, manteniendo la interacción hasta que se elija la opción correcta.
Este tipo de bucle permite crear interfaces interactivas, donde el programa espera las decisiones del usuario y controla el flujo de ejecución, garantizando que termine solo cuando sea deseado.
Código:
opcion = 0
while opcion != 3:
print("\nMenú de Opciones")
print("1. Ver productos")
print("2. Agregar un producto")
print("3. Salir")
opcion = int(input("Seleccioná una opción: "))
if opcion == 1:
print("Mostrando productos...")
elif opcion == 2:
print("Agregando un producto...")
elif opcion == 3:
print("Saliendo del menú.")
else:
print("Opción no válida. Por favor, ingresá una opción entre 1 y 3.")
Salida por pantalla:
Menú de Opciones 1. Ver productos 2. Agregar un producto 3. Salir Seleccioná una opción: 1 Mostrando productos... Menú de Opciones 1. Ver productos 2. Agregar un producto 3. Salir Seleccioná una opción: 2 Agregando un producto... Menú de Opciones 1. Ver productos 2. Agregar un producto 3. Salir Seleccioná una opción: 3 Saliendo del menú.
TAREA PARA EL HOGAR
Crea un programa que simule la gestión de un inventario básico de productos.
Instrucciones:
- Solicitudes al Usuario: Tu programa debe pedirle al usuario que ingrese el nombre de cada producto y la cantidad disponible en stock.
- Bucle de Entrada: El programa debe continuar pidiendo información hasta que el usuario decida salir, ingresando “salir” como nombre del producto.
- Contador de Productos: Implementa un contador para registrar la cantidad total de productos ingresados por el usuario.
- Muestra Total: Una vez que el usuario indique que quiere salir, el programa debe mostrar la cantidad total de productos agregados al inventario.
Tips:
El contador te ayudará a mantener un registro preciso del número de productos ingresados.
Recordá usar estructuras condicionales para determinar cuándo el usuario desea finalizar la entrada de productos.