网站大量收购独家精品文档,联系QQ:2885784924

Python应用开发 课件 4.1函数 递归函数.pptx

Python应用开发 课件 4.1函数 递归函数.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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.函数的递归调用

谢谢

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档