Ejercicio 06 — Pide N e imprime los primeros N terminos de Fibonacci
Dificultad: amarillo · Módulo 03 (Bucles)
Enunciado
Pide N e imprime los primeros N terminos de Fibonacci
Cómo se resuelve
Generar los primeros N términos de Fibonacci apoya la sucesión en la asignación múltiple de Python, que avanza los dos últimos valores de golpe.
a, b = 0, 1— inicializamos los dos primeros términos de la sucesión en una sola línea:aes el término actual ybel siguiente.for _ in range(n)— repetimosnveces. Usamos_como variable del bucle para dejar claro que el índice no nos importa: solo queremos contar iteraciones, no usar el número.print(a, end=" ")— imprime el término actual. Elend=" "cambia el salto de línea por defecto deprintpor un espacio, así todos los términos salen en la misma fila.a, b = b, a + b— el corazón del ejercicio. Python evalúa primero todo el lado derecho (bya + b) con los valores viejos, forma la pareja y luego la reparte:apasa a ser el antiguobybla suma de ambos. Todo simultáneo, sin pisarse.print()fuera del bucle — imprime el salto de línea final que faltaba.
En C harías el avance con una temporal: tmp = a; a = b; b = tmp + b;, porque la asignación es de uno en uno. La asignación múltiple a, b = b, a + b lo resuelve en una línea.
Trampa habitual: separar el avance en a = b y luego b = a + b. Tras a = b el valor original de a ya se ha perdido y la suma sale mal; hay que hacer las dos asignaciones a la vez.
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 06 — PRACTICA (rellena los TODO)
# Enunciado: Pide N e imprime los primeros N terminos de Fibonacci
# Dificultad: amarillo
# Ejecutar: python3 ej06_practica.py
# TODO 1: Lee N desde teclado y conviertelo a entero.
n = None # reemplaza esto
# TODO 2: Inicializa los dos primeros terminos de la secuencia.
# Fibonacci empieza: 0, 1, 1, 2, 3, 5, ...
# Necesitas dos variables: el termino actual y el siguiente.
a = None # reemplaza esto
b = None # reemplaza esto
# TODO 3: Repite N veces. Usa _ como variable de bucle si no la necesitas.
for _ in range(0): # ajusta los argumentos
# TODO 4: Imprime a en la misma linea (pista: print(a, end=" ")).
pass
# TODO 5: Actualiza a y b para avanzar la secuencia.
# En C necesitarias una variable temporal. En Python puedes hacer
# la asignacion multiple en una sola linea: a, b = b, a + b
# ¿Por que esto funciona sin temp? Piensalo.
# TODO 6: Imprime un salto de linea al final con print().Solución — cópiala y ejecútala
# Curso de Python — Modulo 03: Bucles
# Ejercicio 06 — MODELO (resuelto)
# Enunciado: Pide N e imprime los primeros N terminos de Fibonacci
# Dificultad: amarillo
# Ejecutar: python3 ej06_modelo.py
n = int(input("Cuantos terminos de Fibonacci: "))
a, b = 0, 1 # los dos primeros terminos
for _ in range(n): # _ indica que el indice no nos importa
print(a, end=" ") # end=" " para imprimir en la misma linea
a, b = b, a + b # swap atomico: Python evalua la derecha antes de asignar
print() # salto de linea finalCó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.