DMarlon Studio

Lección 9 · 9 de 20

Bucles for y range() · Python

Recorra letras y números con for y range() en Python: una tabla de multiplicar, los años olímpicos, una suma y break para parar.

Python · Bucles for y range() en DMarlon Studio: el código del ejemplo y su salida en la terminal

for repite su bloque una vez por cada elemento de una secuencia. Una cadena es una secuencia de letras, así que for letter in "PYTHON": da seis vueltas, una por letra. end=" " hace que print() termine con un espacio en vez de saltar de línea, y el print() vacío de después cierra la línea.

range() genera números. range(1, 6) da 1, 2, 3, 4 y 5: el final no se incluye. Con él se escribe la tabla del 7 sin repetir cinco veces el mismo print().

Con un tercer número se indica el paso: range(2024, 2036, 4) va de cuatro en cuatro y da los años de los Juegos Olímpicos de verano.

Un patrón muy habitual es acumular: total empieza en 0 y en cada vuelta se le suma n. Al acabar, guarda la suma de 1 a 100: 5050.

break sale del bucle en el acto. El último for podría llegar hasta 99, pero se detiene en cuanto encuentra el primer número que es múltiplo de 6 y de 8 a la vez: 24.

Código · main.py

# for repeats a block once for each item of a sequence.for letter in "PYTHON":    print(letter, end=" ")    # end=" " stays on the same lineprint()# range(1, 6) gives 1, 2, 3, 4, 5 (the end is not included).number = 7for i in range(1, 6):    print(f"{number} x {i} = {number * i}")# range(start, stop, step): the Summer Olympics, every 4 years.for year in range(2024, 2036, 4):    print("Olympic year:", year)# Add up as you go.total = 0for n in range(1, 101):    total += nprint("1 + 2 + ... + 100 =", total)# break leaves the loop as soon as it finds what it wants.for n in range(1, 100):    if n % 6 == 0 and n % 8 == 0:        print("First number divisible by 6 and 8:", n)        break

Salida · python3 main.py

P Y T H O N 
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
Olympic year: 2024
Olympic year: 2028
Olympic year: 2032
1 + 2 + ... + 100 = 5050
First number divisible by 6 and 8: 24

Para recordar

  • for x in secuencia: da una vuelta por elemento.
  • range(a, b) va de a a b - 1; range(n) va de 0 a n - 1.
  • range(a, b, paso) salta de paso en paso.
  • break termina el bucle antes de tiempo.
  • Use for cuando sepa cuántas vueltas dar, y while cuando dependa de una condición.

Ejercicio

Escriba la tabla del 9 del 1 al 10 y, aparte, sume solo los números pares del 1 al 100 usando range() con paso 2.