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

Diagramas de flujo

Diagrama de flujo (actividad) del ejercicio 07

Diagrama de flujo (grafo) del ejercicio 07

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}")

Ejecútalo en el navegador

▶ Visualízalo paso a paso en Python Tutor — ve cómo cambian las variables línea a línea.

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