Lección 06 · 02 Listas, bucles y funciones
Bucles: repetir sin copiar y pegar
Automatizar es, sobre todo, repetir la misma acción con muchos datos. El bucle for hace exactamente eso.
for: una vez por cada elemento
clientes = ["Ana", "Luis", "Eva"]
for cliente in clientes:
print(f"Enviando recordatorio a {cliente}")
print("Fin")Lo sangrado se repite; lo que está fuera de la sangría se ejecuta una sola vez, al terminar.
range y enumerate
for i in range(3): # 0, 1, 2
print("vuelta", i)
for numero, tarea in enumerate(["leer", "resumir"], start=1):
print(numero, tarea)Acumular
El patrón más común: una variable que empieza vacía y se va llenando dentro del bucle.
importes = [120, 80, 45, 300]
total = 0
grandes = []
for importe in importes:
total += importe # igual que total = total + importe
if importe > 100:
grandes.append(importe)
print(total, grandes)while y break
while repite mientras se cumpla la condición. Asegúrate de que algo la haga falsa, o el bucle no acabará (aquí se corta a los 8 segundos).
intentos = 0
while intentos < 3:
intentos += 1
print("intento", intentos)Cuenta los urgentes
Cuenta en urgentes cuántos asuntos contienen la palabra urgente (sin importar mayúsculas). Imprime el número.
¿Atascado? Ver pista
Recorre con for asunto in asuntos: y suma 1 cuando "urgente" in asunto.lower().
Transforma una lista
Crea limpios, una lista nueva con cada nombre sin espacios sobrantes y con la primera letra en mayúscula (.strip().capitalize()). Imprímela.
¿Atascado? Ver pista
Dentro del bucle: limpios.append(nombre.strip().capitalize()).
Tabla de costes
Para cada número de tokens de la lista, imprime una línea N tokens → X €, con el coste a 0.002 € por cada 1.000 tokens y X redondeado a 4 decimales. La primera línea debe ser 1000 tokens → 0.002 €.
¿Atascado? Ver pista
for tokens in lotes:
coste = round(tokens / 1000 * precio_por_mil, 4)
print(f"{tokens} tokens → {coste} €")