PYthon语言程序设计课件第5章 函数.pptx
《PYthon语言程序设计课件第5章 函数.pptx》由会员分享,可在线阅读,更多相关《PYthon语言程序设计课件第5章 函数.pptx(29页珍藏版)》请在163文库上搜索。
1、语言程序设计基础教程第第5 5章章函数函数5.1、函数的定义与调用5.2、参数传递5.3、变量作用域5.4、lambda表达式函数语言程序设计基础教程5.15.1函数的定义与调用函数的定义与调用自定义函数是PYTHON标准函数以外的函数,需要使用者自己定义定义函数的目的:代码重复使用降低开发的难度程序更容易阅读设计函数的原则:找出相对独立功能的代码,即与其它部分关系简单、可单独使用语言程序设计基础教程5.1函数的定义与调用程序代码:1.m=int(input(请输入m的值:)2.n=int(input(请输入n的值:)3.c=factor(m)/(factor(n)*factor(m-n)4.
2、print(C(,)=.format(n,m,c)语言程序设计基础教程5.1函数的定义与调用完整的程序代码:1.def factor(k):2.f=13.for i in range(1,k+1):4.f=f*i5.return f6.m=int(input(请输入m的值:)7.n=int(input(请输入n的值:)8.c=factor(m)/(factor(n)*factor(m-n)9.print(C(,)=.format(n,m,c)分析函数factor:第1行是函数头,包含保留字、函数名、形式参数 第2-5行是函数体,每一行都比函数头行要向右缩进相同大小的空间,第6行无缩进则函数定义
3、结束 函数体的计算结果 使用return语句返还给调用者 定义函数factor的代码需要放在调用该函数的代码之前语言程序设计基础教程5.1函数的定义与调用 调用函数是调用者提供函数定义中每个形参的数值,然后执行函数体,获得函数返回的结果值的过程 调用函数时提供给形参的数值称为,实参的顺序要和形参的顺序一致,没有形参的函数在调用时函数名后的圆括号要保留 函数体中的return语句会结束函数的调用,并返回给调用者return后跟的值作为结果,如果语句没有后跟值,或函数体中没有return语句,则调用结束时返回空对象(None)作为结果语言程序设计基础教程5.1函数的定义与调用程序代码:1.def
4、rootofqe(a,b,c):2.d=b*b-4*a*c3.if d0:4.return(-b+d*0.5)/(2*a),(-b-d*0.5)/(2*a)5.elif d=0:6.return-b/(2*a)7.else:8.return None9.a=int(input(请输入a的值:)10.b=int(input(请输入b的值:)11.c=int(input(请输入c的值:)12.print(rootofqe(a,b,c)分析程序:第1行函数rootofqe的定义中形参有三个,分别为第9-11行的变量在函数体之外,虽然同名但不是形参第12行使用变量的值作为实参调用函数,调用时形参按顺序
5、得到这三个变量的值第2-8行的函数体中使用的是形参,如果函数定义中不定义形参,则函数体可以使用函数体外的变量,但不能修改这三个变量的值第4、6、8行出现了三个,根据变量 的值决定使用哪个返回调用者,函数体内变量 不能函数体外使用语言程序设计基础教程5.1函数的定义与调用没有形参的函数:(函数体中不能修改变量a、b、c)1.def rootofqe:2.d=b*b-4*a*c3.if d0:4.return(-b+d*0.5)/(2*a),(-b-d*0.5)/(2*a)5.elif d=0:6.return-b/(2*a)7.else:8.return None9.a=int(input(请输
6、入a的值:)10.b=int(input(请输入b的值:)11.c=int(input(请输入c的值:)12.print(rootofqe)三次执行程序:()请输入a的值:1请输入b的值:2请输入c的值:1 请输入a的值:1请输入b的值:5请输入c的值:6 请输入a的值:1请输入b的值:2请输入c的值:2语言程序设计基础教程5.1函数的定义与调用函数的复合是将一个函数的调用结果作为调用另一个函数的实参值。例如:print(factor(6)函数的嵌套调用是在一个函数的函数体中调用另一个函数。例如:1.def c():2.return3.def b():4.c()5.return6.def a(
7、):7.b()8.return9.a()函数在嵌套调用时,先调用的函数 最后结束,最后调用的函数 最先结束。语言程序设计基础教程5.1函数的定义与调用程序代码:1.def factor(k):2.f=13.for i in range(1,k+1):4.f=f*i5.return f6.def combin(m,n):7.c=factor(m)/(factor(n)*factor(m-n)8.return c9.m=int(input(请输入m的值:)10.n=int(input(请输入n的值:)11.print(C(,)=.format(n,m,combin(m,n)语言程序设计基础教程5.
8、1函数的定义与调用 函数的递归是在定义一个函数时,函数体中嵌套调用自身的一种特殊的嵌套调用。例如:1.def a(i):2.a(i+1)3.a(0)运行结果出错:RecursionError:maximum recursion depth exceeded原因:一直递归调用自身却无法结束调用,造成嵌套调用层数过多而溢出 递归函数在嵌套调用自身时,必须加上一个先决条件 例如:1.def a(i):2.if i=10时不再嵌套调用自身,形参i的值嵌套调用时会不断加1,从而使i=10条件一定会满足3.a(0)#由于提供实参 给形参,会被调用次,前次会嵌套调用自身,不能结束返回,最后 次会返回语言程序
9、设计基础教程5.1函数的定义与调用程序代码:1.def sum(n):2.if n=1:3.return 14.else:5.return sum(n-1)+n6.print(1+2+.+=.format(6,sum(6)语言程序设计基础教程5.1函数的定义与调用 函数的嵌套定义是将一个函数的定义放在另一个函数的函数体中,函数体中定义的函数称为内层函数,可以在外层函数中调用,不能直接在调用,但可以通过外层函数传递到外面来调用。例如:1.def a():2.def b():3.return4.return5.b()运行结果出错:NameError:name b is not defined原因:
10、函数b是在函数a的定义体中定义的嵌套函数,不能直接在函数a之外调用语言程序设计基础教程5.1函数的定义与调用外层函数通过返回内层函数的名称,可以将内层函数作为一种返回给调用者,调用者调用该函数对象可以间接调用内层函数。例如:1.def a():2.def b():3.return4.return()#第1对圆括号调用,第2对圆括号调用 返回的函数对象外层函数返回的内层函数对象称为,调用闭包函数时外层函数会保留返回前在外层函数中定义的变量和其它嵌套函数,这些保留的变量和函数称为,简称为。例如:6.c=a()#外层函数 返回的函数对象为闭包函数,赋值给函数名 后可以使用该名称调用该闭包函数,也就是
11、调用内层函数 闭包函数的一个使用案例是装饰器,可以在不修改函数体的情况下将函数装饰为另一个函数,有兴趣可以阅读教材中相应内容。语言程序设计基础教程5.2参数传递 参数传递是调用函数时将实参值赋值给形参的过程。当形参的值是不可变数据值时,函数体无法影响到实参的值,如右例第8行所示。当形参得到的值是可变数据值时,函数体中通过形参对值的修改会影响到实参的值,如右例第9行所示。当形参得到的值是可变数据值时,函数体中对形参赋新值,形参会失去对实参值的引用,对新值的修改不会影响到实参的值,如右例第10行所示。例如:1.def a(s):2.s=s+13.def b(s):4.s0=45.def c(s):
12、6.s=37.s0=48.x=0;a(x);print(x)#x值不变9.x=2;b(x);print(x)#x值会变10.x=2;c(x);print(x)#x值不变语言程序设计基础教程5.2参数传递 函数定义时,形参后面可以带上默认值,称为。例如:1.def f(,):2.return a+b+c+d 函数调用时,默认值形参可以不提供实参值,直接使用自带默认值作为形参的值。例如:3.print(f)不带默认值的形参称为,函数定义时必须放置在默认值形参之前,函数调用时必须提供足够多的实参为每个位置形参提供值,多出来的实参会使默认值形参不使用默认值而使用实参值。例如:1.def f(,=3,d
13、=4):2.return a+b+c+d4.print(f(,)语言程序设计基础教程5.2参数传递 函数定义时,形参前面可以带上 号,称为。例如:1.def f(a=1,b=2,*,c=3,d=4):2.return a+b+c+d 函数调用时,该形参位置之前的形参没用完的实参会被打包为元组,作为该可变长位置形参的实参值。例如:3.print(f(5,6,)函数调用时,该形参位置之后的形参无法通过位置方式获得实参值,可以将这些形参定义为默认值形参,也可以通过带形参名的提供值。1.def f(a,b,*p,c,d=4):2.return a+b+c+d4.print(f(5,6,)函数调用时,通
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《PYthon语言程序设计课件第5章 函数.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PYthon语言程序设计课件第5章 函数 PYthon 语言程序设计 课件

链接地址:https://www.163wenku.com/p-7301156.html