来源:太原达内IT教育学校
时间:2021/5/11 17:23:54
太原Python培训学校一般怎么收费的,具体怎么收费根据你所在的城市消费水平以及选择的web培训机构有关,详情可以电话咨询一下。太原达内教育为大家提供多种Python课程,集训营、周末班、线上课程等等,不同班次收费标准不同,详情欢迎来电咨询。接下来小编为您分享,python递归函数
按照惯例,首先给大家介绍一下递归函数的定义。
如果一个函数在内部不调用其他的函数,而是自己本身的话,那么这个函数就是递归函数。
那递归函数需要遵循什么规则呢?
那就是递归函数必须有一个结束条件,否则递归无法结束会一直递归下去,直到到达递归深度报错。
接下来,通过两段代码来展示递归函数:
问题:计算5的阶乘
方法一:调用循环实现,不使用递归函数,如下:
def jiecheng(n):
result=1
for item in range(1,n+1):
result*=item
return result
pass
print(jiecheng(5))
方法二:使用递归函数
def jiecheng(n):
if n==1:
return 1
else:
return n*jiecheng(n-1)
pass
print(jiecheng(5))
我们观察以上两段代码可以发现,方法一使用了循环,去遍历从1到n+1中的所有数据,调用函数取值。
方法二使用了递归函数,首先判断参数n是否为1,否的话返回n*jiecheng(n-1),比方n=5,那么段递归返回的值就是5*jiecheng(4),通过层层递归就n=1结束。
所以可以得出,递归函数的逻辑更为简单,定义也更加简单。不过在日常开发中,递归函数如果没有明确好结束条件,就会导致栈溢出,造成内存资源紧张,甚至内存泄漏。
接下来分享一个使用递归函数来模拟实现树形结构的遍历,也是就如何查找电脑中文件夹中的所有文件,代码如下:
import os#引入python中文件操作模块
def FindFile(File_path):
listRS=os.listdir(File_path)
#调用os函数,获取该路径下中的所有文件夹
for item in listRS#遍历所有文件夹
full_path=os.path.join(File_path,FileItem)
#获取完整的文件路径
if os.path.isdir(full_path):
FindFile(full_path)
else:
print(FileItem)
pass
else:
return
pass
FindFile('E:\\软件')——此处可选择自己电脑上的文件夹
温馨提示:为了不影响您的时间,来校区前或者遇到不明白的问题请先电话咨询,方便我校安排相关课程的专业老师为您解答,选取适合您的课程。以上是太原达内教育的小编为您分享的关于python递归函数的内容,获取更多Python资讯请持续关注太原达内教育。
版权所有:搜学搜课(www.soxsok.com)