Cómo entender las funciones recursivas de Python
Debido al mecanismo de la pila, la recursividad general puede mantener algunas variables en el estado histórico, como el retorno x * potencia que mencionaste... Pero algunos problemas que pueden ser muy grandes o demasiado profundos necesitan debe evitarse en la medida de lo posible, porque la pila puede desbordarse. Otro problema es que ~~ Python no admite la optimización recursiva de cola. ! ! ! Entonces ~ trata de evitar la recursividad.
Definir potencia(x,n)
Si n lt0:
Devuelve 1
Devuelve x * potencia(x,n - 1)
Poder (3, 3)
3 * Poder (3, 2)
3 * (3 * Poder (3, 1))
3 * (3 * (3 * potencia (3, 0)))
3 * (3 * (3 * 1)) donde n = 0, devuelve 1.
3 * (3 * 3)
3 * 9
27
Cuando el parámetro de función n=0, comienza a salir ~ Hasta el final de la primera convocatoria.