|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def power(x, y):
if y:
return x * power(x, y-1)
else:
return 1
print(power(2, 3))
return x * power(x, y-1)这句我应该怎么理解?
本帖最后由 Twilight6 于 2020-11-18 21:17 编辑
语言不好叙述,直接举例子吧:
假设 x = 2 , y = 3
调用 power(x, y) 将 x ,y代入函数 :
power(2, 3) --> if 3 --> True --> return 2 * power(2, 3-1)
而 power(2, 3-1) 开始第一次递归:
power(2, 2) --> if 2 --> True --> return 2 * power(2 , 2-1)
而 power(2, 2-1) 开始第二次递归:
power(2, 1) --> if 1 --> True --> return 2 * power(2 , 1-1)
而 power(2, 1-1) 开始第三次递归:
power(2, 0) --> if 0 --> False --> else --> return 1
递归进入,依次返回:2 * 2 * 2 * 1
即 power(2, 3) 函数 return 2 * 2 * 2 * 1
|
|