Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Recursión | Recursión y Funciones Lambda
Tutorial de Funciones en Python
Sección 5. Capítulo 1
single

single

Recursión

Desliza para mostrar el menú

Note
Definición

Una función recursiva es una función que se llama a sí misma para resolver un problema dividiéndolo en partes más pequeñas y simples.

Los elementos clave de la recursión son:

  • Caso base: la condición que detiene la recursión;
  • Caso recursivo: la parte donde la función se llama a sí misma con una entrada más simple.

¿Por qué usar recursión?

Algunos problemas pueden expresarse de forma natural en términos de subproblemas más pequeños. La recursión ofrece una manera clara y elegante de resolverlos haciendo que una función se llame a sí misma para manejar los casos más simples. Es comúnmente utilizada en tareas como el procesamiento de árboles, la exploración de rutas o la descomposición de estructuras (por ejemplo, listas, cadenas).

Un ejemplo sencillo

123456
def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case print_message("Hello, Recursion!", 3)

Analizar paso a paso para comprender cómo funciona:

  1. times = 3 → la condición es verdadera, imprime el mensaje, llama a print_message(message, 2);
  2. times = 2 → la condición es verdadera, imprime el mensaje, llama a print_message(message, 1);
  3. times = 1 → la condición es verdadera, imprime el mensaje, llama a print_message(message, 0);
  4. times = 0 → la condición es falsa, la recursión se detiene.

Resultado: el mensaje se imprime tres veces.

La pila de llamadas

Cada vez que la función se llama a sí misma, agrega un nuevo marco a la pila de llamadas — una estructura de memoria que realiza un seguimiento de las llamadas activas a funciones. Una vez que se alcanza el caso base, cada llamada previa se completa una por una en orden inverso.

Note
Nota

Toda función recursiva debe tener un caso base. Sin él, la función se llamará a sí misma indefinidamente y provocará un RecursionError.

Tarea

Desliza para comenzar a programar

Implementar una función recursiva list_sum que calcule la suma de todos los elementos en una lista.

  1. Si la lista numbers está vacía, devolver 0 — este es el caso base;
  2. De lo contrario, devolver el primer elemento sumado al resultado de una llamada recursiva con el resto de la lista.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 1
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt