python中的递归
关注公众号“轻松学编程”了解更多。
文章更改后地址:传送门
间接或直接调用自身的函数被称为递归函数。
间接:
def func():
otherfunc()
def otherfunc():
func()
直接:
def func():
func()
递归函数必须要有收敛条件和递归公式。
1、递归求和
'''
使用递归求和
'''
def my_sum(n):
'''
递归求和
1+2+3+...+n
:param n: int型
:return: int型
'''
# 收敛条件
if n == 1:
return 1
# 递归公式
return n + my_sum(n-1)
def main():
print(my_sum(10))
if __name__ == '__main__':
main()
结果为:
55
当发生函数调用时 需要做保存现场和恢复现场的工作。
保存现场和恢复现场的工作都是利用栈(stack)来实现的。
栈是一个FILO的结构 - 栈非常的快但是它很小。
python默认栈的层数为1000层,可以使用以下方法来增加层数(不推荐)<