SIN · Sintaxis 4 · Control de flujo

19.Ciclo for

Repite un bloque un número conocido de veces o recorre, uno por uno, los elementos de una colección: Para en PSeInt y for en Python.

¿Qué es?

El ciclo for («para») repite un bloque un número conocido de veces, o recorre uno por uno los elementos de algo: los números del 1 al 10, los alumnos de una lista, las letras de una palabra.

Es como pasar lista: para cada alumno de la lista, dices su nombre. Sabes desde el principio cuántas vueltas darás.

PSeInt Python
Del 1 al 10 Para i <- 1 Hasta 10 Hacer … FinPara for i in range(1, 11):
Con paso Para i <- 0 Hasta 20 Con Paso 5 Hacer for i in range(0, 21, 5):
Hacia atrás Para i <- 10 Hasta 1 Con Paso -1 Hacer for i in range(10, 0, -1):
Cada elemento de una lista — for alumno in lista:

range() en Python

Llamada Números que genera
range(5) 0, 1, 2, 3, 4
range(1, 6) 1, 2, 3, 4, 5
range(0, 11, 2) 0, 2, 4, 6, 8, 10
range(5, 0, -1) 5, 4, 3, 2, 1

Sintaxis (pseudocódigo / Python)

Tabla de multiplicar de un número.

PSeInt

Algoritmo TablaMultiplicar
	Definir n, i Como Entero
	Escribir "Tabla del:"
	Leer n
	Para i <- 1 Hasta 10 Hacer
		Escribir n, " x ", i, " = ", n * i
	FinPara
FinAlgoritmo

Python

n = int(input("Tabla del: "))
for i in range(1, 11):
    print(f"{n} x {i} = {n * i}")

Recorrer una lista y un texto

alumnos = ["Ana", "Luis", "Sofía"]
for alumno in alumnos:
    print("Presente:", alumno)

for letra in "Hola":
    print(letra)

Ejemplo guiado

Problema: dibujar un triángulo de asteriscos de N filas con ciclos anidados (uno dentro de otro).

Idea: la fila 1 tiene 1 asterisco, la fila 2 tiene 2… El ciclo de afuera recorre las filas; el de adentro, los asteriscos de cada fila.

filas = int(input("Filas: "))
for fila in range(1, filas + 1):
    linea = ""
    for _ in range(fila):
        linea += "*"
    print(linea)

Salida esperada (con 4):

Filas: 4
*
**
***
****

(En Python también puede hacerse con print("*" * fila), pero el ciclo anidado ayuda a entender la idea.)

Errores comunes

# ✗ Error lógico: solo muestra del 1 al 9
for i in range(1, 10):
    print(i)
# ✗ Error lógico: se salta elementos
numeros = [1, 2, 2, 3]
for n in numeros:
    if n == 2:
        numeros.remove(n)
print(numeros)   # [1, 2, 3], quedó un 2
# ✗ Incorrecto
for i in 10:
    print(i)
TypeError: 'int' object is not iterable

Buenas prácticas

  • Usa for cuando sepas cuántas vueltas o tengas una colección que recorrer.
  • Recorre directamente los elementos (for alumno in alumnos) en lugar de usar índices, cuando no los necesites.
  • Si necesitas índice y valor, usa enumerate: for i, alumno in enumerate(alumnos, start=1):.
  • _ como nombre cuando no uses la variable del ciclo.
  • Evita anidar más de dos o tres niveles: extrae una función.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

Antes conviene ver…

© solutions_ · Fundamentos de programación · 19 Ciclo for