Recursion 你能解释一下这个递归吗?谢谢

Recursion 你能解释一下这个递归吗?谢谢,recursion,Recursion,代码的输出是8。为什么是8,也就是2**3? 假设x=2,y=3 此函数将运行。每次它运行时,它都会做一些事情 现在它试图找到你想要得到的东西。 好的,某物得到=功率(x,y-1)(这里x=2,y=2) 所以它有幂(x,y-1)。 同样的事情在电源(x,y-1)中再次发生。它会让你得到一些东西。得到的是幂(x,y-1)(这里x=2,y=1) 此过程持续进行,直到y=0。它返回1 最后你会有 2*2*2*1=2**3=8 假设x=2,y=3 此函数将运行。每次它运行时,它都会做一些事情 现在它试图

代码的输出是8。为什么是8,也就是2**3?

假设x=2,y=3

此函数将运行。每次它运行时,它都会做一些事情

现在它试图找到你想要得到的东西。 好的,某物得到=功率(x,y-1)(这里x=2,y=2) 所以它有幂(x,y-1)。 同样的事情在电源(x,y-1)中再次发生。它会让你得到一些东西。得到的是幂(x,y-1)(这里x=2,y=1)

此过程持续进行,直到y=0。它返回1

最后你会有 2*2*2*1=2**3=8

假设x=2,y=3

此函数将运行。每次它运行时,它都会做一些事情

现在它试图找到你想要得到的东西。 好的,某物得到=功率(x,y-1)(这里x=2,y=2) 所以它有幂(x,y-1)。 同样的事情在电源(x,y-1)中再次发生。它会让你得到一些东西。得到的是幂(x,y-1)(这里x=2,y=1)

此过程持续进行,直到y=0。它返回1

最后你会有
2*2*2*1=2**3=8

谢谢你。你的意思是2*2只是不断重复出现,而y的幂(x,y-1)的唯一目的是减少递归次数,直到y==0吗?@God_是的。这是y的唯一目的。如果没有它,函数将永远继续运行,导致一个无休止的循环。@God\u是我用一个解释图更新了答案。也使用了原始输入:x=2和y=3。再一次,谢谢,谢谢。你的意思是2*2只是不断重复出现,而y的幂(x,y-1)的唯一目的是减少递归次数,直到y==0吗?@God_是的。这是y的唯一目的。如果没有它,函数将永远继续运行,导致一个无休止的循环。@God\u是我用一个解释图更新了答案。也使用了原始输入:x=2和y=3。再一次,谢谢。
def power(x,y):
    if y==0:
        return 1
    else:
        return x*power(x,y-1)

print(power(2,3))