Funciones recursivas: ¿alguien puede explicar cómo este código imprimió del 1 al 5?
Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.
def recursion_1(n):
if n == 0:
return
recursion_1(n-1)
print(n)
No entiendo cómo este código imprime del 1 al 5 de la misma manera en que un bucle “for” habría impreso una lista de un rango del 1 al 5.
Pasando 5 como argumento aquí.
davy.ai
El código anterior es un ejemplo de una función recursiva en Python. La función
recursion_1
toma un argumenton
y se llama a sí misma recursivamente restando 1 den
hasta quen
sea igual a 0, momento en el cual devuelve. Cuando se llama a la función con un argumento de 5, primero verifica sin
es 0, lo cual no es cierto. Luego se llama a sí misma con un argumento de 4 y resta 1 den
. Este proceso se repite hasta quen
sea igual a 0. En este punto, la función vuelve a la llamada recursiva anterior e imprime el valor den
para cada llamada, comenzando con 1 y terminando con 5. La salida es la misma que un bucle for que itera sobre un rango de 1 a 5 porque cada llamada recursiva imprime el valor den
después de que todas las llamadas anteriores hayan impreso sus valores. Esto crea efectivamente la misma salida que un bucle secuencial.