欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对Python递归函数的介绍
关键词:Python递归函数
本文目录:
Python递归函数
所谓递归,就是在函数内部调用它自己本身;
递归函数的一个必要条件是要有终止条件,否则栈就会溢出。通过递归可以实现很多经典的算法,如阶乘、斐波那契数列等。
阶乘:
也就是连乘
def factorial(n):
if n==1:
return 1
return n*factorial(n-1)
#计算5的阶乘
print(i,'!=',factorial(5))
连乘会了,连加也是一样
data = list(range(1, 101))
print(data)
result = 0
for x in data:
result += x
print(result)
改成递归
def my_add(n):
if n==1:
return 1
return n + my_add(n-1)
#计算1到100的累加
print(i,'+=',my_add(100))
还是利用递归,完成累加
data = list(range(1, 101))
print(data)
def my_add(a, b):
if len(a)==2:
return a[0]+a[1]+b
#去掉最后一个元素
return my_add(a[:-1], a[-1]) + b
my_add(data[:-1], data[-1])
# my_add([1, 2, ..., 98], 99) 递归调用为 my_add([1, 2, ..., 97], 98) + 99。b一直在增加
#直到 my_add([1, 2], 99),结果为 1 + 2 + 99 = 102