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.
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.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.for parte in partes— recorremos la lista directamente. En Python elforitera sobre los elementos de la secuencia, no sobre índices:partetoma cada cadena una a una, sin necesidad de un contador ni de acceder por posición.total += int(parte)— cada trozo se convierte conint()y se suma al acumulador, que arrancamos entotal = 0antes del bucle. La conversión aquí es clave: si sumaras las cadenas tal cual,"3" + "7"daría"37"(concatenación), no10.
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.