Ejercicio 05 — El usuario introduce N
Dificultad: amarillo · Módulo 05 (Listas y comprehensions)
Enunciado
El usuario introduce N; imprime la lista de cuadrados de 1 a N
Cómo se resuelve
Generar la lista de cuadrados de 1 a N combina leer un número del usuario con una comprehension que transforma cada elemento (aquí, elevándolo al cuadrado).
n = int(input("Introduce N: "))—input()siempre devuelvestr, así que envolvemos conint()para tener un entero de verdad con el que construir el rango.range(1, n + 1)— produce los números del 1 al N. Como el límite superior es exclusivo, sumamos 1 para que N quede incluido.[x**2 for x in range(1, n + 1)]— la comprehension recorre cadaxy guarda su transformaciónx**2. A diferencia del ejercicio de los pares, aquí no hayifque filtre: cada elemento produce un resultado, y la lista de salida tiene tantos elementos como el rango.x**2es la potencia en Python (base ** exponente); equivale ax*x. En C no existe operador de potencia para enteros y usaríasx*xopow().
Trampa habitual: escribir range(1, n), que se queda en N-1 y te deja sin el último cuadrado. El n + 1 es lo que garantiza incluir N.
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 05 — PRACTICA (rellena los TODO)
# Enunciado: El usuario introduce N; imprime la lista de cuadrados de 1 a N
# Dificultad: amarillo
# Ejecutar: python3 ej05_practica.py
# TODO: pide N al usuario y conviertelo a entero (recuerda: input() devuelve str)
n = 0
# TODO: usa una list comprehension con range(1, n+1)
# la expresion debe calcular x al cuadrado (x**2)
cuadrados = []
# TODO: imprime la lista de cuadrados
print()Solución — cópiala y ejecútala
# Curso de Python — Modulo 05: Listas y comprehensions
# Ejercicio 05 — MODELO (resuelto)
# Enunciado: El usuario introduce N; imprime la lista de cuadrados de 1 a N
# Dificultad: amarillo
# Ejecutar: python3 ej05_modelo.py
# input() devuelve str -> hay que convertir a int
n = int(input("Introduce N: "))
# range(1, n+1) genera 1..N inclusive
# x**2 es la potencia en Python (equivalente a x*x en C)
cuadrados = [x**2 for x in range(1, n + 1)]
print(cuadrados)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.