Ejercicio 07 — Dada una lista de numeros separados por espacios, imprime su suma

Dificultad: rojo · Módulo 03 (Bucles)

Enunciado

Dada una lista de numeros separados por espacios, imprime su suma

Cómo se resuelve

Sumar los números de una línea escrita a mano junta tres ideas: partir un texto en trozos, iterar sobre esa lista y convertir cada trozo a número antes de operar.

  1. entrada = input("...") — lee una línea entera de texto, por ejemplo "3 7 2 8". Todo llega como una única cadena, no como números.
  2. partes = entrada.split()split() sin argumentos parte la cadena por los espacios y devuelve una lista de cadenas: ["3", "7", "2", "8"]. Sigue siendo texto, no números.
  3. for parte in partes — recorremos la lista directamente. En Python el for itera sobre los elementos de la secuencia, no sobre índices: parte toma cada cadena una a una, sin necesidad de un contador ni de acceder por posición.
  4. total += int(parte) — cada trozo se convierte con int() y se suma al acumulador, que arrancamos en total = 0 antes del bucle. La conversión aquí es clave: si sumaras las cadenas tal cual, "3" + "7" daría "37" (concatenación), no 10.

El contraste con C es doble: allí recorrerías con índices (for (i = 0; i < n; i++)) y trocear la línea a mano exige strtok o parseo con sscanf; aquí split() y el for sobre la lista lo hacen en dos líneas.

Trampa habitual: olvidar el int() y sumar cadenas, que Python pega en vez de sumar. También, contar con que split() ignora los espacios de sobra: dos espacios seguidos no generan trozos vacíos.

Para practicar — cópialo y complétalo

Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.

# Curso de Python — Modulo 03: Bucles
# Ejercicio 07 — PRACTICA (rellena los TODO)
# Enunciado: Dada una lista de numeros separados por espacios, imprime su suma
# Dificultad: rojo
# Ejecutar: python3 ej07_practica.py
 
# TODO 1: Lee una linea completa de texto desde teclado (no int(), solo input()).
#         Ejemplo de entrada: "3 7 2 8"
entrada = None  # reemplaza esto
 
# TODO 2: Parte la cadena en trozos usando el metodo .split().
#         entrada.split() devuelve una lista de strings: ["3", "7", "2", "8"]
#         Guarda el resultado en una variable llamada partes.
partes = None  # reemplaza esto
 
# TODO 3: Inicializa un acumulador a 0.
total = None  # reemplaza esto
 
# TODO 4: Recorre cada elemento de partes con un for-each.
#         Atencion: cada elemento es un STRING, necesitas convertirlo a int.
for parte in []:  # cambia [] por la variable correcta
    pass  # TODO: convierte parte a int y acumula en total
 
# TODO 5: Imprime el resultado con formato "Suma = <valor>".

Solución — cópiala y ejecútala

# Curso de Python — Modulo 03: Bucles
# Ejercicio 07 — MODELO (resuelto)
# Enunciado: Dada una lista de numeros separados por espacios, imprime su suma
# Dificultad: rojo
# Ejecutar: python3 ej07_modelo.py
 
# Lee una linea con numeros separados por espacios, p.e. "3 7 2 8"
entrada = input("Introduce numeros separados por espacios: ")
 
# split() parte el string en una lista de strings: ["3", "7", "2", "8"]
partes = entrada.split()
 
total = 0
for parte in partes:
    total += int(parte)  # convierte cada string a int antes de sumar
 
print(f"Suma = {total}")

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones