Ejercicio 01 — Pide al usuario N números enteros y calcula su suma y media
Dificultad: verde · Módulo 05 (Listas y comprehensions)
Enunciado
Pide al usuario N números enteros y calcula su suma y media
Cómo se resuelve
Leer varios números de una sola línea y sacar su suma y su media encadena tres piezas de Python: partir el texto, convertirlo en una lista de enteros y aplicarle funciones que operan sobre toda la lista a la vez.
entrada = input(...)— lee toda la línea como un únicostr, por ejemplo"4 1 9". Todavía es texto, no números.entrada.split()— parte esa cadena por los espacios y devuelve una lista de trozos de texto:["4", "1", "9"]..split()sin argumentos separa por cualquier bloque de espacios, así que espacios de más no molestan.[int(x) for x in entrada.split()]— esta es la clave: una list comprehension recorre cada trozoxy le aplicaint(x), produciendo una lista nueva de enteros[4, 1, 9]en una sola línea. En C tendrías que reservar el array de antemano y llenarlo con un bucle; aquí la lista crece sola y guarda ya el tipo que quieres.sum(numeros)ylen(numeros)— funciones builtin que trabajan sobre la lista entera:sumsuma todos los elementos ylencuenta cuántos hay. La media estotal / len(...), y:.2fen la f-string la muestra con dos decimales.
Trampa habitual: si el usuario no escribe nada, entrada.split() devuelve una lista vacía y total / len(numeros) revienta con ZeroDivisionError. También, sin el int(...), sumarías cadenas y + las pegaría en vez de sumarlas.
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 05: Listas y comprehensions
# Ejercicio 01 — PRACTICA (rellena los TODO)
# Enunciado: Pide al usuario N números enteros y calcula su suma y media
# Dificultad: verde
# Ejecutar: python3 ej01_practica.py
# TODO: pide al usuario una linea de numeros separados por espacio
entrada = input("Introduce numeros separados por espacio: ")
# TODO: usa split() y una list comprehension para convertir cada elemento a int
numeros = [] # reemplaza esta lista vacia
# TODO: calcula la suma y la media
total = 0 # usa sum() y len()
media = 0.0
# TODO: imprime con f-string: "Suma: X Media: Y.YY"
print()Solución — cópiala y ejecútala
# Curso de Python — Modulo 05: Listas y comprehensions
# Ejercicio 01 — MODELO (resuelto)
# Enunciado: Pide al usuario N números enteros y calcula su suma y media
# Dificultad: verde
# Ejecutar: python3 ej01_modelo.py
# Pedimos los numeros en una sola linea separados por espacio
entrada = input("Introduce numeros separados por espacio: ")
# split() parte el string por espacios -> lista de strings
# La comprehension convierte cada elemento a int
numeros = [int(x) for x in entrada.split()]
# sum() y len() son funciones builtin de Python
total = sum(numeros)
media = total / len(numeros)
print(f"Suma: {total} Media: {media:.2f}")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.