一 递归
递归的概念:递归的概念是算法的范畴本来不属于python语言的语法内容,但是在每个编程语言系列教学都要讲到递归。
如果掌握了递归的方法会发现是一个非常棒的变成思路。
什么叫做递归(recursion):一个函数在自己的内部调用函数本身。
# def func(num,l,start=None,sed=None): # start=start if start else 0 # sed=sed if sed else len(l)-1 # mid=(sed-start)//2+start # if l[mid]>num: # return func(num,l,start,mid-1) # elif l[mid]<num: # return func(num,l,mid+1,sed) # else: # return mid,l[mid] # l=[2,3,5,10,15,16,18,22,16,30,32,35,41,42,43,55,56,66,67,69,72,76,73,82,88] # print(func(66,l))
递归的深度在python中是有限制的。
递归的好处就是代码简介精炼。
自己咋定义一个递归函数的时候,必须要有一个限制。
递归的副作用:1 递归函数可以调用本身,但是每次都需要进行 压栈,弹栈保存和恢复寄存器的栈的操作,在这个上面很消耗时间和空间。
2 如果递归一旦忘记返回或者错误的设置了返回的条件,那么在执行递归代码会成为一个无底洞,只进不出。(递归的口诀:递归递归,归去来兮)
使用迭代是考验毫秒级的,而实现递归是考验CPU的能力(n秒------n分钟不等)。
二 解耦
什么叫做解耦:要完成一个完整的功能,但是这个功能的规模要尽量的小,并且和这个功能无关的其他代码应该和这个函数分离。
解耦的好处:1 增强代码的重用性;2 减少代码变更的相互影响;3 减少代码的冗余。