1. Patrón ACUMULADOR (sumar / combinar resultados)
Se usa cuando quieres acumular un resultado progresivamente.
Ejemplos típicos:
- Sumar números
- Calcular media
- Concatenar texto
- Multiplicar valores
Ejemplo: suma de una lista
numeros = [10, 20, 30, 40]
suma = 0 # ← acumulador
for n in numeros:
suma += nprint(suma)
Idea mental:
resultado = valor_inicial
repetir:
resultado = resultado + algo
2. Patrón CONTADOR (contar ocurrencias)
Se usa cuando quieres contar cuántas veces ocurre algo.
Ejemplos:
- Contar pares
- Contar vocales
- Contar aprobados
Ejemplo: contar pares
numeros = [1,2,3,4,5,6]
contador = 0
for n in numeros:
if n % 2 == 0:
contador += 1print(contador)
Idea mental:
contador = 0
si ocurre algo → contador++
3. Patrón CENTINELA (parar cuando ocurre algo)
Se usa cuando no sabes cuántas iteraciones habrá y paras cuando aparece una condición especial.
Muy común con while.
Ejemplos:
- Leer hasta introducir 0
- Leer hasta EOF
- Menús interactivos
- Contraseña correcta
Ejemplo: sumar hasta que el usuario introduzca 0
suma = 0
while True:
n = int(input("Número (0 para salir): "))
if n == 0:
break
suma += nprint(suma)
Idea mental:
repetir hasta que aparezca señal_de_parada
La señal = centinela.
4. Patrón BÚSQUEDA (encontrar algo)
Se usa cuando quieres localizar un elemento.
Ejemplos:
- Buscar número en lista
- Buscar palabra en texto
- Buscar usuario en base de datos
Ejemplo: buscar un número
numeros = [5, 8, 3, 9, 2]
objetivo = 9
encontrado = False
for n in numeros:
if n == objetivo:
encontrado = True
breakprint(encontrado)
Idea mental:
encontrado = False
recorrer:
si coincide → parar
5. Patrón FILTRADO (seleccionar algunos)
Se usa cuando quieres quedarte solo con elementos que cumplen condición.
Ejemplos:
- Solo pares
- Solo mayores de edad
- Solo palabras largas
Ejemplo: filtrar pares
numeros = [1,2,3,4,5,6]
pares = []
for n in numeros ():
if n % 2 == 0:
pares.append(n)print(pares)
Idea mental:
resultado = []
si cumple condición → guardar
6. Patrón CONSTRUCCIÓN (generar algo nuevo)
Se usa cuando quieres crear una nueva estructura a partir de otra.
Ejemplos:
- Crear lista de cuadrados
- Convertir texto a lista
- Transformar datos
Ejemplo: cuadrados
numeros = [1,2,3,4]
cuadrados = []for n in numeros:
cuadrados.append(n**2)print(cuadrados)
Versión avanzada (list comprehension):
cuadrados = [n**2 for n in numeros]
Idea mental:
resultado = []
por cada elemento:
transformar
guardar

Resumen mental
| Patrón | Pregunta mental |
|---|---|
| Acumulador | ¿Estoy combinando resultados? |
| Contador | ¿Estoy contando ocurrencias? |
| Centinela | ¿Debo parar cuando pase algo? |
| Búsqueda | ¿Estoy intentando encontrar algo? |
| Filtrado | ¿Solo quiero algunos elementos? |
| Construcción | ¿Estoy creando una nueva colección? |
Ejercicio de pensamiento (muy potente)
Para cada problema, identifica primero el patrón:
- Sumar precios de una lista → Acumulador
- Contar aprobados → Contador
- Pedir contraseña hasta acertar → Centinela
- Buscar usuario → Búsqueda
- Quedarse con números > 10 → Filtrado
- Crear lista de cuadrados → Construcción










