递归函数: 直接或者间接调用自身以进行循环的函数。
这里是用递归函数编写的一个定制求和函数的列子:
def mysum(l):
print(l)
if not l:
return 0
else:
return l[0] + mysum(l[1:])
print(mysum([1, 2, 3, 4, 5]))
result:
[1, 2, 3, 4, 5]
[2, 3, 4, 5]
[3, 4, 5]
[4, 5]
[5]
[]
15
正如你看见的,在每次递归的时候,要加的列表变得越来越小,知道它为空,退出循环。
其实我们也可以通过循环来执行递归的方法,循环语句更加自然和简单:
l= [1, 2, 3, 4, 5]
sum = 0
while l:
sum += l[0]
l = l[1:]
print(sum)
result:
15