|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def power(x, y):
if y:
return x * power(x, y-1)
else:
return 1
print(power(2, 4))
当中的, return x * power(x, y-1),需要如何理解呀,我有点不明白,望指教,谢谢了
hi
这个属于递归函数(调用函数自身)。以powe(2,3)为例(计算2的3次方),说明下过程
- def power(x, y):
- if y:
- return x * power(x, y-1)
- else:
- return 1
- 1. power(2,3) #x=2,y=3
- y>0 , return x * power(x, y-1), 即 return 2 * power(2,2)
- 2. 下面计算 power(2,2) #x=2,y=2
- y>0 , return x * power(x, y-1), 即 return 2 * power(2,1)
- 3. 下面计算 power(2,1) #x=2,y=1
- y>0 , return x * power(x, y-1), 即 return 2 * power(2,0)
- 4. 下面计算 power(2,0) #x=2,y=0
- y=0,执行else分支,即 返回 1
- 5. 也就是说: power(2,3) = 2 * power(2,2) = 2 * 2 * power(2,1) = 2*2*2 * power(2,0)=2*2*2*1
- 最后需要注意,使用递归函数时,一定要注意 递归、递归,一定要归来(如:例子中的else: return 1),否则就会陷入无限循环,导致崩溃
复制代码
|
|