在函数返回的时候,调用自身,并且return语句不能包含表达式。
def fact(n):
return fact_iter(1, 1, n)
def fact_iter(product, count, max):
if count > max:
return product
return fact_iter(product * count, count + 1, max)
fact(3)>>(1,1,3)>>fact_iter(1, 1, 3)>>>>>>(6, 4, 3)>>4大于max,跳出,返回product
需要递归出口
出口条件成立后返回当前水平的product
递归时需要给予变化后的数据,如上的product * count和count + 1。