¿Por qué toda función recursiva debe tener un caso base?
def countdown(n):
if n == 0: # base case
return
print(n)
countdown(n - 1) # recursive caseOpciones
- Hace que la función sea más rápida con entradas grandes
- Sin él, las llamadas nunca se detienen (RecursionError) (Opción correcta)
- Python lo exige como parte de la sintaxis de funciones
- Permite que la función devuelva un valor a quien la llama
Respuesta
Sin una condición que detenga la recursión, la función se llama a sí misma para siempre (RecursionError)
Por qué
Recursión significa que una función se llama a sí misma con una versión más pequeña del problema.
El caso base es la entrada más simple, que se responde directamente, sin otra llamada (aquí n == 0). Cada llamada debe acercarse a él.
Sin caso base, las llamadas nunca se detienen y Python lanza RecursionError cuando el call stack es demasiado profundo.
Recuerda
Recursión = caso base + llamada recursiva más pequeña.