# 练习递归 
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])