Fundamentos de Programación · Programación

Bucles for y while

Itera sobre secuencias con for y repite hasta una condición con while, controlando el acumulador y evitando bucles infinitos.

Bucles for y while

Ilustracion de programacion: diagrama de flujo con decisionales y bloques de proceso.
Bases de la programacion: algoritmos, control de flujo y estructuras de datos.

Mapa conceptual

for para recorrer, while para esperar Elige el bucle por la pregunta que respondes: «¿recorrer cada elemento?» → for. «¿Repetir hasta que algo cambie?» → while. Usar el equivocado es la raíz de los bucles infinitos y del código confuso.

Un for recorre los elementos de una secuencia: for x in lista: ejecuta el bloque una vez por cada x. Un while condicion: repite el bloque mientras la condición siga siendo True, y suele necesitar que algo dentro la modifique para que termine.

for: recorrido y acumuladores

  1. total = 0 (acumulador).
  2. for n in [3, 5, 8]: total += n suma cada valor.
  3. for i in range(5): recorre 0,1,2,3,4: range genera enteros sin listarlos.
  4. range(2, 10, 2) da 2,4,6,8 (inicio, fin exclusivo, paso).

El patrón acumulador (inicializar antes, actualizar dentro, usar después) aparece en casi todo: sumas, conteos, máximos, listas nuevas construidas elemento a elemento.

El borde que no se incluye range(n) va de 0 a n−1, nunca incluye n. Contar «n veces» es for i in range(n), y recorrer los índices de una lista de longitud L es for i in range(L) o mejor for i, v in enumerate(lista):.

¿Qué imprime exactamente for i in range(3): print(i)?

Todo bucle while puede reescribirse como for y viceversa sin cambiar el resultado.

Clasifica cada situación según el bucle más natural para resolverla.

for
while

Bucle infinito: el accidente clásico

Si la variable que controla el while nunca cambia, la condición jamás se vuelve False y el programa se cuelga. Ejemplo sano: n = 0 ... while n 5: n += 1 (n crece y llega a 5). Ejemplo roto: olvidar n += 1 → n vale 0 para siempre.

Errores frecuentes

Para salir de un bucle: break lo interrumpe; continue salta el resto de la vuelta actual y pasa a la siguiente. Útiles para no recorrer de más cuando ya se encontró la respuesta.

Repetir bien

for in
recorrer elementos
while
repetir mientras True
range(n)
0..n−1 (sin n)
acumulador
inicializar, actualizar, usar
break
salir del bucle
continue
pasar a la siguiente vuelta
bucle infinito
condición que nunca se cumple

Python · for y while
Lección oficial de bucles, range, break y continue con ejemplos.

Necesitas calcular un promedio leyendo números hasta que el usuario escriba la palabra «fin». ¿Usarías for o while? Justifica tu elección y escribe el esqueleto del bucle con su acumulador y su condición de salida.

Reflexiona: ¿como se relaciona este tema con los demas temas del curso? ¿Que ejemplo practico podrias dar?

Repasa los conceptos clave de este tema antes de continuar al siguiente. Asegurate de entender las definiciones principales y los ejemplos presentados.

Python Tutorial
Tutorial oficial de Python 3 para principiantes.