请问这个Python程序运行原理是什么,Python程序运行原理,def exp(a,b)


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

编橙之家文章,

评论关闭