- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
python程序设计
函数
1.掌握Python递归函数
递归函数
数学上有个经典的递归例子叫阶乘,阶乘通常定义为:
n!=n(n-1)(n-2)…(1)
n=0时,n!=1
我们通过分支和循环能完成相关运算
#获取用户输入的数字
num=int(input(请输入一个整数:))
factorial=1
ifnum0:
print(抱歉,负数没有阶乘)
elifnum==0:
print(0的阶乘为1)
else:
foriinrange(num,0,-1):
factorial=factorial*i
print({}的阶乘为{}.format(num,factorial))
递归函数
上述计算阶乘的算法比较复杂,不容易理解。还有没有更简便的解决方案呢?
阶乘还有另一种表达方式:
这其实又是一个阶乘的表达,变量变为n-1.
如果我们定义一个求阶乘的函数,那么函数自己能不能调用自己呢?
递归函数
函数作为一种代码封装,可以被其它程序调用,当然,也可以被函数内部代码调用。
这种函数定义中调用函数自身的方式称为递归。
就像一个人站在装满镜子的房间中,看到的影像就是递归的结果。
递归在数学和计算机应用上非常强大,能够非常简洁的解决重要问题。
根据用户输入的整数n,计算并输出n的阶乘值。
deffact(n):
ifn==0:
return1
else:
returnn*fact(n-1)
num=eval(input(求阶乘请输入一个整数:))
print(fact(num))
递归函数
以n=5为例,看看递归执行过程。
递归函数
阶乘的例子揭示了递归的2个关键特征:
1、存在一个或多个基例,基例不需要再次递归,它是一个确定的表达式。
2、所有递归链要以一个或多个基例结尾。
注意:
在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。
递归次数过多容易造成栈溢出等。
递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。
所以一般不提倡用递归算法设计程序。
Python函数
1.函数的递归调用
谢谢
您可能关注的文档
最近下载
- GB∕T 19292.1-2018 金属和合金的腐蚀 大气腐蚀性 第1部分:分类测定和评估(高清版).pdf
- SPSS在调查研究中的应用解析.pptx VIP
- 22J403-1 楼梯 栏杆 栏板一.docx VIP
- QC小组活动成果报告—降低空气压缩机组故障次数.docx
- !24J306图集窗井、设备吊装口、排水沟、集水坑.pdf VIP
- 基于大数据处理的农产品数据分析方法及云平台.pdf VIP
- 社交礼仪(多选题)题库.pdf VIP
- 本科毕业论文机械专业煤泥烘干机毕业设计.doc
- 2025年江苏省淮安市洪泽区小升初数学模拟试卷附答案解析.pdf
- 22J403-1 楼梯 栏杆 栏板一 (1).docx VIP
文档评论(0)