23.python递归函数介绍
不断的对于某操作重复调用执行称为递归调用,递归函数执行的这个过程中只有进栈(开辟空间),没有出栈,直到最后一次调用完毕了,才逐个出栈,所以递归函数在执行的时候非常的占用内存资源;如果执行的次数过多了,会产生内存溢出的现象;所以一定要控制递归的层数,当符合某一条件时要终止递归调用,几乎所有的递归都能用while循环来代替;所以对于递归要慎用!!! 递归函数: 在某个函数中,调用其本身(函数自己调用自己),这个函数整体我们称为递归函数。 如何定义递归函数?(先假设此函数已经实现) 考虑切入点:(1).寻找一个临界点(结束点);(2).本次的函数执行不能满足最终的整体需求,所以还需要再次的去调用此函数;(找到后者和前者之间的关系,体现:后者的调用结束会将前者需要的数据返回回来) 优点:递归可以把问题简单化,让思路使为清淅,代码更简洁。缺点:递归因系统环境影响大,当递归深度太大时,可能会得到不可预知的结果。 演示递归函数调用自身: 1 # 直接调用自身: 2 def f(): 3 f() 4 5 f() 1 # 间接调用自身: 2 def fa(): 3 fb() 4 def fb(): 5 fa() 6 7 fa() 代码演示示例: 1 # 递归求和:0 + 1 + 2 + 3 + 4 + ..... + n 的和 2 def mysum(n): 3 if n == 0: 4