这里不能理解的就是return和print在函数里面的用法,继续学习。
代码
def mysum(li):
print(li)
if not li:
return 0
else:
return li[0] + mysum(li[1:])
# 为什么这里用return,用print就会出错。
print(mysum([1, 3, 4, 6, 7, 7]))
输出
[1, 3, 4, 6, 7, 7]
[3, 4, 6, 7, 7]
[4, 6, 7, 7]
[6, 7, 7]
[7, 7]
[7]
[]
28
代码
def mys(lis):
print(lis)
if not lis:
return 0
return nonempty(lis)
def nonempty(lis):
return lis[0] + mys(lis[1:])
print(mys([1, 4, 6, 7, 8, 9]))
输出
[1, 4, 6, 7, 8, 9]
[4, 6, 7, 8, 9]
[6, 7, 8, 9]
[7, 8, 9]
[8, 9]
[9]
[]
35