|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 7728821314502 于 2017-5-21 04:08 编辑
def power(x, y): 程序的流程: power(2,3)
if y: power(2,2)
return x * power(x, y-1) power(2,1)
else: power(2,0) 之后 因为 y = 0 return 1 程序不是该结束了吗
return 1
print(power(2, 3)) 程序怎么还在运行 最后结果是 8?
程序接下来是怎么运行的???
求科普
程序是这样执行的
power(2,3)=2*power(2,2)
power(2,2)=2*power(2,1)
power(2,1)=2*power(2,0)
power(2,0)=1
因为除了power(2,0)=1直接输出结果,其他都需要函数自身循环,
所以,power(2,1)、power(2,2)、power(2,3)的计算方式是放缓存中,等得到等式右边都是具体数字,才进行赋值。
所以程序执行和赋值是相反的顺序,即逆推赋值,在计算机眼里是这样进行的:
power(2,0)=1
power(2,1)=2*power(2,0)=2*1
power(2,2)=2*power(2,1)=2*(2*1)
power(2,3)=2*power(2,2)=2*(2*(2*1))
|
|