PythonAprende PythonDocumentación

Bucles

Repite trabajo con for, while y range; controla con break y continue.

Un bucle repite un bloque de código. Es la diferencia entre escribir 100 líneas de print y escribir 3.

El bucle for

En Python, for recorre elementos de una colección:

for fruta in ["manzana", "pera", "uva"]:
    print(fruta)
# manzana
# pera
# uva

range(): el generador de secuencias

range() crea una secuencia de números — el compañero habitual de for:

for i in range(3):          # 0, 1, 2 → empieza en 0, SIN incluir el 3
    print(i)

for i in range(1, 4):       # 1, 2, 3 → inicio incluido, fin excluido
    print(i)

for i in range(0, 10, 2):   # 0, 2, 4, 6, 8 → con paso de 2
    print(i)

Ejemplo clásico — acumular:

total = 0
for numero in range(1, 11):
    total += numero
print(total)    # 55 → suma del 1 al 10

El bucle while

Repite mientras la condición sea verdadera:

contador = 0
while contador < 3:
    print(f"Vuelta {contador}")
    contador += 1    # ← sin esta línea: bucle infinito

¿for o while? Regla práctica: si sabes cuántas veces vas a iterar, usa for. Si dependes de una condición que puede cambiar de forma impredecible, usa while.

break y continue

for numero in range(10):
    if numero == 5:
        break          # termina el bucle COMPLETAMENTE
    print(numero)      # imprime 0, 1, 2, 3, 4

for numero in range(5):
    if numero == 2:
        continue       # salta SOLO esta iteración
    print(numero)      # imprime 0, 1, 3, 4

Recorrer con índice: enumerate

Cuando necesitas el elemento Y su posición:

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

for i, lenguaje in enumerate(lenguajes):
    print(f"{i}: {lenguaje}")
# 0: Python
# 1: Go
# 2: Rust

Bucles anidados

Un bucle dentro de otro — para matrices y combinaciones:

for fila in range(3):
    for columna in range(3):
        print(f"({fila}, {columna})", end=" ")
    print()   # salto de línea al terminar cada fila

Errores comunes

# Bucle infinito: olvidar actualizar la condición
contador = 0
while contador < 5:
    print(contador)   # ¡siempre imprime 0! falta contador += 1

# Off-by-one: range no incluye el final
for i in range(5):
    print(i)          # imprime 0 a 4, NO 5

# range con float lanza error
range(0.5, 2.5)       # TypeError: range solo acepta enteros

Resumen

  • for recorre colecciones; range(a, b, paso) genera números con fin excluido
  • while repite mientras la condición sea True — ¡actualiza el contador!
  • break corta el bucle entero; continue salta una vuelta
  • enumerate() te da el índice y el elemento a la vez

Quiz

  1. 1. ¿Qué valores genera range(3)?

  2. 2. ¿Qué imprime for i in range(2, 10, 3): print(i)?

  3. 3. ¿Qué hace la instrucción `break` dentro de un bucle?

Ejercicios

Ejercicio 1: Suma acumulada

Usa un bucle for para sumar los números del 1 al 10 e imprime el total. Resultado esperado: 55

Cargando editor…

Ejercicio 2: Contador de vocales

Completa la función para que cuente cuántas vocales (a, e, i, o, u) tiene el texto.

Cargando editor…