玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

请问这个Python程序运行原理是什么

def exp(a,b):
    if b ==1:
        return a
    else:
        return a*exp(a,b-1)

print exp(2,3)
...8        
print exp(2,4)
...16

对于 return aexp(a,b-1) 这一步中,比如执行exp(2,3)是返回的是:2(2*2)吗?
可是exp明明是一个函数呀,也并没有明确是进行内部的乘法运算,有点迷糊了。(提问有点无知,望见谅)

这是递归,也就是函数自己调用自己,是一种把问题分隔简化为相似的小问题来求解的方法

其实对于结果,你单步调试一下就知道了

exp(2,3)
会被化解为
2 * exp(2, 2)
然后再被化解为
2 * 2 * exp(2, 1)
然后再被化解为(这个时候b == 1,所以走第一个if分支)
2 * 2 * 2

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd18556.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年06月02日 - 17时41分14秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules