Repaso
English

¿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 case

Opciones

  1. Hace que la función sea más rápida con entradas grandes
  2. Sin él, las llamadas nunca se detienen (RecursionError) (Opción correcta)
  3. Python lo exige como parte de la sintaxis de funciones
  4. 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.

Términos clave

Practica esta pregunta en Repaso