- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python 编程三阶
公开课 优质课 适用
如遇课件中视频、音频无法正常播放,请在网站联系上传者索取完整版本。
如需与课件配套的教学设计、随堂练习,请与上传者联系索取。
函数拓展
课前回顾
1、函数的嵌套
在一个函数中定义了另外一个函数。分为外函数和内函数
2、函数的参数拓展
必备参数、关键字参数、默认参数、“函数”参数
3、函数的返回值拓展
“函数”返回值、return函数名()调用内函数、return函数名调用内函数
情境引入
在之前的课程中,我们学习函数的创建与调用,了解函数各种的特性。
在本节课,我们会认识两种不同寻常的函数,来帮助我们更加深层次的理解函数。
循序善诱
第一种函数,它不使用def关键字创建
第二种函数可以帮助我们解决斐波那契数列这一数学问题。
循序善诱
本节课
我们要学习匿名函数与递归函数~
新知教授
2、递归函数
1、匿名函数
3、课堂总结
匿名函数
新知教授
Python使用lambda关键字创造匿名函数。
为了解决那些功能很简单的需求而设计的一句话函数。
匿名函数比我们之前创建的函数的结构更为简单
思维构建
格式:函数名 = lambda 参数 :返回值
匿名函数并不是真的不能有名字,而是不使用def关键字定义函数。
思维构建
匿名函数是单个的表达式,不是一个代码块。
匿名函数的设计是为了满足简单函数的场景。
calc = lambda n:n**n # 匿名函数赋值给变量进行调用
print(calc(10))
具有复杂逻辑的函数还是要def定义
编玩边学
匿名函数参数可以有多个,用逗号隔开
# 使用def定义的函数
def add( x, y ):
return x + y
add() # 调用函数
# 使用lambda定义的函数
add = lambda x, y: x + y
匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
编玩边学
匿名函数也是可以嵌套的
action = (lambda x: (lambda y: x + y))
a = action(10) # 返回lambda y: x + y
print(a(5)) # 调用lambda y: x + y
和def函数的嵌套原则一样
递归函数
新知教授
递归是一种计算过程。
一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
递归和洋葱很像哦
思维构建
直接或间接的调用自身的函数,称为递归函数。
# 递归函数
def sum1(a):
if a==1:
return 1
else:
return a+sum1(a-1) # 调用自身
print(sum1(5))
计算1+2+3+4+5=?
编玩边学
在使用递归函数时,需要注意必须有一个明确的递归结束条件,称为递归出口。
# 递归函数
def sum1(a):
if a==1:
return
sum1(a-1) # 调用自身,无结束条件
print(sum1(5))# 运行结果为None
程序不能求和了,陷入死循环
新知教授
斐波那契数列因数学家列昂纳多·斐波那契以兔子繁殖为例引入,故又称为兔子数列。
新知教授
兔子数列描述:如果兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子,假设所有的兔子都不死,那么一年后可以繁殖多少对兔子呢?
思维构建
1、1、2、3、5、8、13、21、34、55、89、144……
这个数列从第3项开始,每一项都等于前两项之和。
如何设计程序算出指定项数的斐波那契数?
编玩边学
非递归函数实现
def Fibonacci(n):
a = 0
b = 1
sum1 = 0
if n = 2:
sum1 = 1
else:
for i in range(1, n):
sum1 = a + b
a = b
b = sum1
print(sum1)
Fibonacci(3) # 输入指定项数,调用函数
需要使用循环结构
编玩边学
递归函数实现
def fabonacci(n):
if n = 2:
sum1 = 1
return sum1
sum1 = fabonacci(n-1)+fabonacci(n-2)# 调用自身
return sum1
print(fabonacci(2))
使用递归函数调用自身,大大简化了代码结构
实践创作
适当使用匿名函数与递归函数可大大简化
您可能关注的文档
- python编程 一阶第07课 7课 while循环 课件 .pptx
- python编程 一阶第11课 排列小星星 课件 .pptx
- python编程教学 二阶第02课 神奇的“圆” 课件 .pptx
- python编程教学 二阶第05课 春联 课件 .pptx
- python编程教学 二阶第06课 新年贺卡 课件 .pptx
- python编程教学 二阶第08课 奥运五环 课件 .pptx
- python编程教学 二阶第10课 多彩同心圆 课件 .pptx
- python编程教学 二阶第11课 花蟒蛇 课件 .pptx
- python编程教学 二阶第20课 案例考题(三)课件 .pptx
- python编程教学 三阶第05课 高阶函数 课件.pptx
- python编程教学 三阶第14课 python文件操作(一) 课件 .pptx
- python编程教学 三阶第18课-Tkinter动画 课件 .pptx
- python编程教学 三阶第19课-GUI图形设计(一)课件 .pptx
- python编程教学 四阶第02课 神奇的CSS 课件 .pptx
- python编程教学 四阶第12课 数据提取之正则 课件 .pptx
- python编程教学 四阶第13课 数据提取之xpath 课件.pptx
- python编程教学 四阶第15课 lxml的进阶使用 课件 .pptx
- python编程教学 一阶第13课 列表的使用 课件 .pptx
- python编程教学 一阶第16课 再遇字符串 课件 .pptx
- python编程教学课件 二阶第01课 turtle的魅力 课件 .pptx
文档评论(0)