Cargando...

Una función que se llama a sí misma

El nombre down está dentro de down, y cada paso pasa un número una unidad menor. Por eso down(3) escribe 3, luego 2, luego 1.

La línea if n == 0: return es la parada. Cuando n es 0, corre esa línea y down no se usa otra vez. Si no la escribes, los pasos no se acaban y el programa no llega al final. Esa forma rota no aparece abajo.

3, luego 2, luego 1

python
def down(n):
    if n == 0:
        return
    print(n)
    down(n - 1)

down(3)

La pantalla muestra 3, luego 2, luego 1. print corre antes del siguiente down. down(1) escribe 1 y luego llega a down(0). down(0) cae en la parada, no escribe nada, y el programa termina.

Pon print en la línea de después de down(n - 1). Los números menores salen primero, porque cada paso espera a que el de dentro haya terminado.

1, luego 2, luego 3

python
def down(n):
    if n == 0:
        return
    down(n - 1)
    print(n)

down(3)

La pantalla muestra 1, luego 2, luego 3. down(0) sigue sin escribir nada. Los print corren a la vuelta, así que 1 se escribe antes que 2, y 2 antes que 3.

down(0) solo no llega nunca a print. La parada corre enseguida.

down(0) no escribe nada

python
def down(n):
    if n == 0:
        return
    print(n)
    down(n - 1)

down(0)

La pantalla se queda vacía y el programa termina. n ya es 0, así que print y el down siguiente se saltan.

Leer mal las pantallas

El segundo programa no es 3, luego 2, luego 1. Ese orden es del primero, donde print va delante. Quitas if n == 0: return de cualquiera de los dos y los pasos no se acaban. No ejecutes esa versión.

La página siguiente es una lista de valores. Aquí solo se ve una función que usa su propio nombre, y la línea que la para en 0.

Sigue los números

  1. ¿Qué escribe el primer programa, primero y después?
  2. ¿Qué escribe el segundo programa, primero y después?
  3. ¿Qué escribe el tercer programa?
  4. Quitas la parada en 0. ¿El programa llega al final?

Qué hace down

El nombre down dentro de down, con n - 1, baja de 3 a 1. print antes de ese paso escribe 3, luego 2, luego 1. print después escribe 1, luego 2, luego 3. if n == 0: return es la razón de que el programa termine. down(0) no escribe nada.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior