Ejemplos for con rango

# ─────────────────────────────────────────────
# BLOQUE 1: Recorrer un rango y mostrar cada número
# ─────────────────────────────────────────────

# for con rangos  ← título original del programa

# range(1, 11) genera la secuencia: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
# REGLA IMPORTANTE: el primer número SÍ se incluye, el segundo NO.
# Por eso para llegar al 10 hay que escribir 11 como límite.
# En cada vuelta del bucle, la variable numero toma el valor siguiente de la secuencia.
for numero in range(1,11):
    print(numero)

# Resultado: imprime los números del 1 al 10, cada uno en su línea.
#
# Variaciones de range() que conviene conocer:
#   range(5)         → 0, 1, 2, 3, 4          (un solo argumento: empieza en 0)
#   range(0, 10, 2)  → 0, 2, 4, 6, 8          (tercer argumento: el salto entre números)
#   range(10, 0, -1) → 10, 9, 8, 7... 1       (salto negativo: cuenta hacia atrás)
#   range(0, 100, 5) → 0, 5, 10, 15... 95     (de 5 en 5)


# ─────────────────────────────────────────────
# BLOQUE 2: Sumar todos los números del 1 al 10
# ─────────────────────────────────────────────

# El acumulador es una variable que empieza en 0 ANTES del bucle
# y va sumando valores en cada vuelta.
# Si lo inicializáramos dentro del bucle, se reiniciaría a 0 en cada vuelta
# y nunca acumularía nada. Por eso SIEMPRE se declara fuera.
suma=0

for numero in range(1,11):
    suma+=numero  # es exactamente lo mismo que escribir: suma = suma + numero
                  # Traza paso a paso de cómo crece suma:
                  # Vuelta 1:  suma = 0  + 1  = 1
                  # Vuelta 2:  suma = 1  + 2  = 3
                  # Vuelta 3:  suma = 3  + 3  = 6
                  # Vuelta 4:  suma = 6  + 4  = 10
                  # Vuelta 5:  suma = 10 + 5  = 15
                  # Vuelta 6:  suma = 15 + 6  = 21
                  # Vuelta 7:  suma = 21 + 7  = 28
                  # Vuelta 8:  suma = 28 + 8  = 36
                  # Vuelta 9:  suma = 36 + 9  = 45
                  # Vuelta 10: suma = 45 + 10 = 55

# El print está FUERA del bucle (sin sangría).
# Si estuviera dentro con sangría, imprimiría el subtotal en cada vuelta.
# Al estar fuera, solo imprime el resultado final cuando el bucle ha terminado.
print(suma)
# Resultado: 55
#
# Curiosidad matemática: la fórmula de Gauss da el mismo resultado sin bucle:
#   n * (n+1) / 2  →  10 * 11 / 2 = 55
# Pero construir el bucle a mano es la mejor forma de entender el patrón acumulador.


# ─────────────────────────────────────────────
# BLOQUE 3: Mostrar solo los números pares del 1 al 10
# ─────────────────────────────────────────────

# Este bloque combina un for con un if dentro.
# El for genera todos los números del 1 al 10.
# El if filtra: solo deja pasar los que cumplen la condición.
for numero in range(1,11):

    # El operador % (módulo) devuelve el resto de una división.
    # Si numero % 2 == 0, el resto al dividir entre 2 es cero → el número es par.
    # Ejemplos:  4 % 2 = 0  →  par      5 % 2 = 1  →  impar
    #            6 % 2 = 0  →  par      7 % 2 = 1  →  impar
    if numero % 2 == 0:
        print(numero)

# Resultado: 2  4  6  8  10  (cada uno en su línea)
#
# Para imprimir los IMPARES en su lugar, solo habría que cambiar == 0 por != 0:
#   if numero % 2 != 0:
#       print(numero)
# Resultado: 1  3  5  7  9
#
# Alternativa con range de salto 2 (sin necesidad de if):
#   for numero in range(2, 11, 2):   → genera directamente 2, 4, 6, 8, 10
#       print(numero)


# ─────────────────────────────────────────────
# BLOQUE 4: Dibujar un triángulo de asteriscos
# ─────────────────────────────────────────────

# Este bloque usa una propiedad de Python muy útil:
# multiplicar una cadena de texto por un número la repite ese número de veces.
# Ejemplos:
#   "*" * 1  →  *
#   "*" * 3  →  ***
#   "*" * 5  →  *****
#   "ab" * 3 →  ababab
for numero in range(1,11):
    print("*"*numero)  # en cada vuelta, numero vale 1, 2, 3... 10
                       # así que se imprimen 1, 2, 3... 10 asteriscos seguidos

# Resultado visual (un triángulo que crece):
#   *
#   **
#   ***
#   ****
#   *****
#   ******
#   *******
#   ********
#   *********
#   **********
#
# Para un triángulo invertido (que decrece) bastaría con invertir el range:
#   for numero in range(10, 0, -1):
#       print("*" * numero)
# Resultado: empieza con 10 asteriscos y va bajando hasta 1.


# ─────────────────────────────────────────────
# BLOQUE 5: Tabla de multiplicar de un número
# ─────────────────────────────────────────────

# Tabla de multiplicar  ← comentario original

# El factor es el número del que queremos calcular la tabla.
# Cambiando este valor obtenemos cualquier tabla de multiplicar.
factor=7

# El range va del 1 al 10 (el 11 no se incluye).
# En cada vuelta, numero toma los valores 1, 2, 3... 10.
for numero in range(1,11):

    # La f-string permite construir el texto con las variables directamente.
    # {numero}       → el multiplicador (1, 2, 3... 10)
    # {factor}       → siempre 7
    # {numero*factor}→ el resultado
    print(f"{numero} X {factor} = {numero*factor}")

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos