# 练习递归
numlist=[1,3,5,7,9]
time=0
def listsum(numlist,time):
if len(numlist)==1:
print('----if----')
print(*numlist)
return numlist[0]
else:
print('----else----')
print(*numlist)
print (numlist[0])
print ((numlist[1:]))
time=time+1
print("pass by else is %d time" %(time))
return numlist[0]+listsum(numlist[1:],time)
print(listsum([1,3,5,7,9],time))
1 , 核心:分清最简单的情况,和次简单情况, 如果通过两种场景,那就可以使用递推
2, 函数内的所有print 都是为了展示过程
3, return 本身就能调用 函数自身,嵌套N次 else, 通过 print 也能看到调用了 4次 else
4, 不过涉及到 嵌套的调用的话, 这个 time参数,只能写成变量了, 真的有点麻烦
下边来看,队列的使用
1, 如果是从左到有 当时是 list[0] + list [1:] 就可以了 ,, 但是 如果是从右到左, 那就只能是 list[-1] 结合 list[:-1]
贴一下代码
num=[2,4,6,8,10]
def listsum(num):
if len(num)==1:
return num[-1]
else:
return num[-1]+listsum(num[:-1])
print(listsum(num))
# 解释list的用法
print(*num[:-1])
print(num[-3])
print(num[-4])