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.