资源简介 (共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 + yadd() # 调用函数# 使用lambda定义的函数add = lambda x, y: x + y匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值编玩边学匿名函数也是可以嵌套的action = (lambda x: (lambda y: x + y))a = action(10) # 返回lambda y: x + yprint(a(5)) # 调用lambda y: x + y和def函数的嵌套原则一样递归函数新知教授递归是一种计算过程。一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归和洋葱很像哦思维构建直接或间接的调用自身的函数,称为递归函数。# 递归函数def sum1(a):if a==1:return 1else:return a+sum1(a-1) # 调用自身print(sum1(5))计算1+2+3+4+5=?编玩边学在使用递归函数时,需要注意必须有一个明确的递归结束条件,称为递归出口。# 递归函数def sum1(a):if a==1:returnsum1(a-1) # 调用自身,无结束条件print(sum1(5))# 运行结果为None程序不能求和了,陷入死循环新知教授斐波那契数列因数学家列昂纳多·斐波那契以兔子繁殖为例引入,故又称为兔子数列。新知教授兔子数列描述:如果兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子,假设所有的兔子都不死,那么一年后可以繁殖多少对兔子呢?思维构建1、1、2、3、5、8、13、21、34、55、89、144……这个数列从第3项开始,每一项都等于前两项之和。如何设计程序算出指定项数的斐波那契数?编玩边学非递归函数实现def Fibonacci(n):a = 0b = 1sum1 = 0if n <= 2:sum1 = 1else:for i in range(1, n):sum1 = a + ba = bb = sum1print(sum1)Fibonacci(3) # 输入指定项数,调用函数需要使用循环结构编玩边学递归函数实现def fabonacci(n):if n <= 2:sum1 = 1return sum1sum1 = fabonacci(n-1)+fabonacci(n-2)# 调用自身return sum1print(fabonacci(2))使用递归函数调用自身,大大简化了代码结构实践创作适当使用匿名函数与递归函数可大大简化我们的函数结构,减少代码量。尝试使用它们精简自己的函数吧!课堂总结1、匿名函数格式:函数名 = lambda 参数 :返回值2、递归函数直接或间接的调用自身的函数,称为递归函数。3、斐波那契数列这个数列从第3项开始,每一项都等于前两项之和。分享交流同学们今天写代码有没有遇到什么问题?演示今天打印的代码同学们,要加油哦!下节课见啦 展开更多...... 收起↑ 资源预览