小学中高年级课后服务 python编程教学 三阶第06课 函数拓展 课件 (25张PPT)

资源下载
  1. 二一教育资源

小学中高年级课后服务 python编程教学 三阶第06课 函数拓展 课件 (25张PPT)

资源简介

(共25张PPT)
函数拓展
课前回顾
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))
使用递归函数调用自身,大大简化了代码结构
实践创作
适当使用匿名函数与递归函数可大大简化我们的函数结构,减少代码量。
尝试使用它们精简自己的函数吧!
课堂总结
1、匿名函数
格式:函数名 = lambda 参数 :返回值
2、递归函数
直接或间接的调用自身的函数,称为递归函数。
3、斐波那契数列
这个数列从第3项开始,每一项都等于前两项之和。
分享交流
同学们今天写代码有没有遇到什么问题?
演示今天打印的代码
同学们,要加油哦!
下节课见啦

展开更多......

收起↑

资源预览