Python程序设计基础04_6函数式编程ppt课件.pptx
-
资源ID:15237078
资源大小:1.81MB
全文页数:9页
- 资源格式: PPTX
下载积分:10金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Python程序设计基础04_6函数式编程ppt课件.pptx
在此输入您的封面副标题Python程序设计基础程序设计基础04_6函数式编程函数式编程杭州师范大学杭州师范大学 虞歌虞歌 第第2页页Python程序设计基础程序设计基础函数函数杭州师范大学杭州师范大学 虞歌虞歌 第第3页页Python程序设计基础程序设计基础函数函数函数是函数是“头等公民头等公民”,函数能像普通变量一样使用。,函数能像普通变量一样使用。square函数给定函数给定一个输入值,返回该输入值的平方值一个输入值,返回该输入值的平方值。将将square函数赋值给变量函数赋值给变量s,相当于为函数取了一个别名,相当于为函数取了一个别名,使用别名,使用别名s来调用来调用square函数函数。杭州师范大学杭州师范大学 虞歌虞歌 第第4页页Python程序设计基础程序设计基础函数函数Python允许函数嵌套定义,即在一个函数内部定义另一个函数,这种函数被称允许函数嵌套定义,即在一个函数内部定义另一个函数,这种函数被称为内嵌函数或内部函数。为内嵌函数或内部函数。sum_square函数给定函数给定一个序列,返回序列中每个元素平方值的和一个序列,返回序列中每个元素平方值的和。square函数定义在函数定义在sum_square函数中,它是内部函数,其作用域就在函数中,它是内部函数,其作用域就在sum_square函数内部。在函数内部。在sum_square函数外部试图调用内部函数函数外部试图调用内部函数square就会发生错误。就会发生错误。杭州师范大学杭州师范大学 虞歌虞歌 第第5页页Python程序设计基础程序设计基础函数函数Python支持高阶支持高阶函数。高阶函数。高阶函数指函数指能够接收其他函数作为其参数的函数。前面能够接收其他函数作为其参数的函数。前面使用过的使用过的map函数、函数、filter函数和函数和reduce函数都是高阶函数函数都是高阶函数。apply_func是高是高阶函数阶函数,第一,第一个参数是函数,第二个参数是可迭代对象个参数是函数,第二个参数是可迭代对象,使用,使用map函数将给定的函数应用到可迭代对象的每一个元素。返回处理后的新可迭代对象函数将给定的函数应用到可迭代对象的每一个元素。返回处理后的新可迭代对象。杭州师范大学杭州师范大学 虞歌虞歌 第第6页页Python程序设计基础程序设计基础函数函数在在Python中,函数的返回值可以是另一个函数。中,函数的返回值可以是另一个函数。cylinder_volume函数,给定半径,返回函数,给定半径,返回get_volume函数。函数。get_volume函数,给定高度,返回圆柱体体积。函数,给定高度,返回圆柱体体积。get_volume函数是内部函数。函数是内部函数。调用调用cylinder_volumecylinder_volume函数,返回函数,返回get_volumeget_volume函数并函数并赋值给变量赋值给变量volumevolume。通过通过传递实参传递实参1010给变量给变量volumevolume来调用来调用get_volumeget_volume函函数并输出圆柱体体积数并输出圆柱体体积。通过通过传递实参传递实参2020给变量给变量volumevolume来调用来调用get_volumeget_volume函函数并输出圆柱体体积。数并输出圆柱体体积。杭州师范大学杭州师范大学 虞歌虞歌 第第7页页Python程序设计基础程序设计基础函数函数内部内部函数可以看作一个函数可以看作一个闭包闭包。闭包是一个可以由另一个函数动态生成的。闭包是一个可以由另一个函数动态生成的函数,函数,可以可以访问函数外创建的变量的值访问函数外创建的变量的值。get_volume函数就是一个闭包。函数就是一个闭包。在在一个内部函数(如一个内部函数(如fun)里,对在外部作用域(不是全局作用域)的变量(如)里,对在外部作用域(不是全局作用域)的变量(如x,在外部作用域在外部作用域foo里)进行引用,那么内部函数(如里)进行引用,那么内部函数(如fun)就是一个闭包)就是一个闭包。杭州师范大学杭州师范大学 虞歌虞歌 第第8页页Python程序设计基础程序设计基础函数函数在在内部函数中,只能对外部作用域中的变量进行访问,不能修改。内部函数中,只能对外部作用域中的变量进行访问,不能修改。内部内部函数函数fun中,中,x*=x,新建了局部变量,新建了局部变量x,与外部函数,与外部函数foo中的局部变量中的局部变量x重名重名。在在内部函数内部函数fun中,外部函数中,外部函数foo中的中的x被屏蔽了。因此,在执行被屏蔽了。因此,在执行x*=x的时候,找不的时候,找不到到*=右边右边x的值,报错。的值,报错。杭州师范大学杭州师范大学 虞歌虞歌 第第9页页Python程序设计基础程序设计基础函数函数在在内部函数中修改外部函数中的变量值,需要使用关键字内部函数中修改外部函数中的变量值,需要使用关键字nonlocal。在在内部函数内部函数fun中中,x为非局部变量。为非局部变量。