Portada de libro electrónico gratuitaPython desde cero con mini-retos: aprende programando (sin teoría eterna)

Python desde cero con mini-retos: aprende programando (sin teoría eterna)

Nuevo curso

12 páginas

Bucles para repetición, conteo e iteración controlada

Capítulo 4

Tiempo estimado de lectura: 5 minutos

+ Ejercicio

¿Qué es un bucle y cuándo usarlo?

Un bucle (loop) es una estructura que repite un bloque de código varias veces. Se usa cuando necesitas: contar (1 a N), recorrer elementos (una lista, un texto), repetir hasta que ocurra algo (un usuario acierta, llega un dato válido, se cumple una condición), o automatizar tareas repetitivas sin copiar y pegar código.

En Python, los bucles más comunes son for (iteración controlada por una secuencia o un rango) y while (repetición controlada por una condición).

Bucle for: repetición por conteo e iteración

Iterar con range() (conteo controlado)

range() genera una secuencia de números. Es ideal para “repetir N veces” o para recorrer índices.

  • range(fin): empieza en 0 y llega hasta fin - 1
  • range(inicio, fin): empieza en inicio y llega hasta fin - 1
  • range(inicio, fin, paso): avanza de paso en paso (puede ser negativo)
# Repetir 5 veces (0,1,2,3,4) for i in range(5):     print("Vuelta:", i)  # Contar del 1 al 5 (1,2,3,4,5) for n in range(1, 6):     print(n)  # Contar de 10 a 0 de 2 en 2 (10,8,6,4,2,0) for n in range(10, -1, -2):     print(n)

Iterar sobre elementos (sin índices)

Muchas veces no necesitas el índice: solo quieres cada elemento. Python permite iterar directamente sobre listas, tuplas, cadenas, etc.

nombres = ["Ana", "Luis", "Marta"] for nombre in nombres:     print("Hola", nombre)  palabra = "python" for letra in palabra:     print(letra)

Iterar con índice y elemento: enumerate()

Si quieres el índice y el valor a la vez, usa enumerate(). Evita manejar el contador “a mano”.

Continúa en nuestra aplicación.

Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.

O continúa leyendo más abajo...
Download App

Descargar la aplicación

productos = ["pan", "leche", "café"] for i, producto in enumerate(productos):     print(i, "-", producto)  # Empezar el índice en 1 for i, producto in enumerate(productos, start=1):     print(i, ")", producto)

Iterar en paralelo: zip()

Para recorrer dos (o más) listas al mismo tiempo, usa zip(). Se detiene al llegar a la lista más corta.

nombres = ["Ana", "Luis", "Marta"] edades = [20, 31, 27] for nombre, edad in zip(nombres, edades):     print(nombre, "tiene", edad)

Bucle while: repetición controlada por condición

while repite mientras una condición sea verdadera. Es útil cuando no sabes cuántas vueltas habrá: por ejemplo, seguir intentando hasta acertar, procesar datos hasta que se acaben, o repetir hasta que un valor alcance un umbral.

contador = 0 while contador < 3:     print("Intento", contador)     contador += 1

Evitar bucles infinitos

Un riesgo típico de while es olvidar actualizar la variable que cambia la condición. Asegúrate de que en algún punto la condición pueda volverse falsa, o usa una salida explícita con break cuando corresponda.

n = 5 while n > 0:     print(n)     n -= 1

Control fino del bucle: break, continue y else

break: salir del bucle antes de tiempo

Termina el bucle inmediatamente. Útil cuando ya encontraste lo que buscabas.

numeros = [3, 8, 2, 9, 4] for n in numeros:     if n == 9:         print("Encontrado")         break

continue: saltar a la siguiente vuelta

Omite el resto del bloque y pasa a la siguiente iteración.

for n in range(1, 6):     if n == 3:         continue     print(n)

else en bucles: cuando NO se ejecuta break

En Python, un bucle puede tener else. Se ejecuta solo si el bucle termina “normalmente” (sin break). Es muy útil para búsquedas.

objetivo = 7 numeros = [1, 2, 4, 6, 8] for n in numeros:     if n == objetivo:         print("Está en la lista")         break else:     print("No está en la lista")

Mini-reto guiado: contador de progreso (for + range)

Objetivo

Imprimir un progreso del 0% al 100% en pasos de 10, y al final mostrar “Listo”.

Paso a paso

  • Usa range() con inicio 0, fin 101 y paso 10.
  • En cada vuelta imprime el porcentaje.
  • Después del bucle imprime “Listo”.
for p in range(0, 101, 10):     print(p, "%") print("Listo")

Mini-reto guiado: sumar hasta que se alcance un límite (while)

Objetivo

Acumular números empezando en 1 hasta que la suma sea mayor o igual a 50. Mostrar cuántos números se usaron y la suma final.

Paso a paso

  • Crea dos variables: suma (inicia en 0) y n (inicia en 1).
  • Mientras suma < 50, añade n a suma y luego incrementa n.
  • Cuando el bucle termine, n ya habrá avanzado una unidad más, así que calcula cuántos números se usaron.
suma = 0 n = 1 while suma < 50:     suma += n     n += 1  usados = n - 1 print("Usados:", usados) print("Suma:", suma)

Patrones comunes de iteración (para resolver problemas rápido)

Acumulador (sumar, concatenar, juntar resultados)

precios = [10, 20, 15] total = 0 for p in precios:     total += p print(total)

Contador (contar cuántos cumplen una condición)

edades = [12, 18, 21, 16, 30] mayores = 0 for e in edades:     if e >= 18:         mayores += 1 print(mayores)

Bandera (flag) para saber si ocurrió algo

numeros = [2, 4, 6, 7, 8] hay_impar = False for n in numeros:     if n % 2 != 0:         hay_impar = True         break print(hay_impar)

Búsqueda del máximo y mínimo (sin funciones extra)

datos = [5, 2, 9, 1] maximo = datos[0] minimo = datos[0] for x in datos[1:]:     if x > maximo:         maximo = x     if x < minimo:         minimo = x print("max:", maximo) print("min:", minimo)

Errores típicos y cómo evitarlos

  • Olvidar que range(fin) no incluye fin: si quieres llegar a 10, usa range(11) o ajusta el límite.
  • Modificar una lista mientras la recorres: puede saltarse elementos. Si necesitas eliminar, suele ser mejor crear una nueva lista con los que quieres conservar.
  • Usar índices cuando no hacen falta: iterar directo sobre elementos hace el código más claro.
  • En while, no actualizar la variable de control: revisa que la condición pueda cambiar.

Ahora responde el ejercicio sobre el contenido:

En un bucle for en Python, ¿cuándo se ejecuta el bloque else asociado al bucle?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

El else de un bucle se ejecuta únicamente cuando el bucle finaliza sin interrupción por break. Si ocurre break, el else no se ejecuta.

Siguiente capítulo

Funciones para modularidad, reutilización y pruebas rápidas

Arrow Right Icon
Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.