Seguir las llamadas
Python · Unidad 11: Recursión
- Plan completo
- Python
- 9 ejercicios
Cuando fact(3) llama a fact(2), no termina: se queda esperando la respuesta. Cada llamada tiene su propio n.
Las llamadas se apilan como platos: la última que entra es la primera que sale. Eso es la pila de llamadas.
def fact(n):
print("entra", n)
if n == 1:
return 1
r = n * fact(n - 1)
print("sale", n)
return r
fact(3)Imprime
entra 3 entra 2 entra 1 sale 2 sale 3
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Opción múltiple
Mientras
fact(2)trabaja, ¿qué pasa con la llamadafact(3)?2. Predice la salida
Aquí el caso base es no hacer nada, porque con 0 no entra al
if. ¿Qué imprime?3. Predice la salida
¿Qué imprime este código?
4. Predice la salida
Sigue qué regresa cada llamada. ¿Qué imprime?
5. Completa el código
Completa el caso base para que imprima 8, que es 2 elevado a la 3.
6. Encuentra el bug
Este programa debería imprimir 24, el factorial de 4. ¿Qué línea tiene el error?
7. Ordena las líneas
Ordena para que dibuje una escalera que baja: #, ## y ###, en ese orden.
8. Opción múltiple
Con
cuenta(4), ¿cuántas veces se llama acuentaen total, contando la primera?9. Predice la salida
¿Qué imprime este código?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.