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

Desliza para mostrar el menú

book
Recursión

Note
Definición

Recursión es una técnica de programación donde una función se llama a sí misma para resolver un problema en partes más pequeñas. Es especialmente útil para problemas con estructura repetitiva o subproblemas naturales.

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 naturalmente en términos de subproblemas más pequeños. La recursión proporciona una forma 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).

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

Analicemos paso a paso cómo funciona este programa recursivo:

  1. Verificación de condición: si times > 0, la función continúa. En este caso, times = 3, por lo que la condición es verdadera;

  2. Impresión del mensaje: la función imprime "Hello, Recursion!";

  3. Llamada recursiva: la función se llama a sí misma con times - 1;

  4. Repetición: este proceso continúa hasta que times es igual a 0;

  5. Finalización: cuando la condición times > 0 ya no es verdadera, la recursión se detiene y el programa finaliza.

Resultado: El mensaje "Hello, Recursion!" se imprime tres veces.

Comprensión del flujo:

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 rastrea las llamadas de función activas). La función sigue llamándose a sí misma con un valor de times menor. Una vez que alcanza el caso base (times == 0), se detiene. Luego, cada llamada previa se completa una por una en orden inverso. Este comportamiento de retroceso es esencial para el funcionamiento de la recursión.

Tarea

Swipe to start coding

Dada una cadena que representa un número de teléfono, la cual puede contener espacios, guiones, paréntesis u otros caracteres no numéricos. El objetivo es extraer únicamente los dígitos utilizando recursividad.

  1. Si la cadena de entrada number está vacía, devolver una cadena vacía.
  2. Comprobar si el primer carácter de la cadena number es un dígito utilizando el método isdigit() en una condición if.
  3. Si es un dígito, concatenarlo con el resultado de una llamada recursiva a format_phone_number, pasando la subcadena que comienza desde el segundo carácter.
  4. Si no es un dígito, realizar una llamada recursiva a format_phone_number, omitiendo el primer carácter.

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
Lamentamos que algo salió mal. ¿Qué pasó?

Pregunte a AI

expand
ChatGPT

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

book
Recursión

Note
Definición

Recursión es una técnica de programación donde una función se llama a sí misma para resolver un problema en partes más pequeñas. Es especialmente útil para problemas con estructura repetitiva o subproblemas naturales.

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 naturalmente en términos de subproblemas más pequeños. La recursión proporciona una forma 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).

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

Analicemos paso a paso cómo funciona este programa recursivo:

  1. Verificación de condición: si times > 0, la función continúa. En este caso, times = 3, por lo que la condición es verdadera;

  2. Impresión del mensaje: la función imprime "Hello, Recursion!";

  3. Llamada recursiva: la función se llama a sí misma con times - 1;

  4. Repetición: este proceso continúa hasta que times es igual a 0;

  5. Finalización: cuando la condición times > 0 ya no es verdadera, la recursión se detiene y el programa finaliza.

Resultado: El mensaje "Hello, Recursion!" se imprime tres veces.

Comprensión del flujo:

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 rastrea las llamadas de función activas). La función sigue llamándose a sí misma con un valor de times menor. Una vez que alcanza el caso base (times == 0), se detiene. Luego, cada llamada previa se completa una por una en orden inverso. Este comportamiento de retroceso es esencial para el funcionamiento de la recursión.

Tarea

Swipe to start coding

Dada una cadena que representa un número de teléfono, la cual puede contener espacios, guiones, paréntesis u otros caracteres no numéricos. El objetivo es extraer únicamente los dígitos utilizando recursividad.

  1. Si la cadena de entrada number está vacía, devolver una cadena vacía.
  2. Comprobar si el primer carácter de la cadena number es un dígito utilizando el método isdigit() en una condición if.
  3. Si es un dígito, concatenarlo con el resultado de una llamada recursiva a format_phone_number, pasando la subcadena que comienza desde el segundo carácter.
  4. Si no es un dígito, realizar una llamada recursiva a format_phone_number, omitiendo el primer carácter.

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
Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
Lamentamos que algo salió mal. ¿Qué pasó?
some-alt