python函数设计与异常ppt课件.ppt

python函数设计与异常ppt课件.ppt

ID:59415364

大小:1.27 MB

页数:61页

时间:2020-09-19

python函数设计与异常ppt课件.ppt_第1页
python函数设计与异常ppt课件.ppt_第2页
python函数设计与异常ppt课件.ppt_第3页
python函数设计与异常ppt课件.ppt_第4页
python函数设计与异常ppt课件.ppt_第5页
资源描述:

《python函数设计与异常ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Python函数设计和异常汇报人:付红玉汇报时间:2018年5月一函数设计与使用1“”Python函数将可能需要反复执行的代码封装为函数,并在需要执行该段代码功能的地方进行调用,不仅可以实现代码的复用,更重要的是可以保证代码的一致性,只需要修改该函数代码则所有调用位置均得到体现。在编写函数时,有很多原则需要参考和遵守:1、不要在同一个函数中执行太多的功能,尽量只让其完成一个高度相关且大小合适的功能,以提高模块的内聚性。2、尽量减少不同函数之间的隐式耦合,例如减少全局变量的使用,使得函数之间仅通过调用和参数传

2、递来显式体现其相互关系。2函数定义函数定义语法:def函数名([参数列表]):'''注释'''函数体函数形参不需要声明类型,也不需要指定函数返回值类型即使该函数不需要接收任何参数,也必须保留一对空的圆括号括号后面的冒号必不可少函数体相对于def关键字必须保持一定的空格缩进Python允许嵌套定义函数注意事项√√√√√3函数定义格式生成斐波那契数列的函数定义和调用:调用函数1000是实参n是形参deffib(n):a,b=1,1whilea

3、ib(1000)定义头函数体4函数的注释在定义函数时,开头部分的注释并不是必需的,但如果为函数的定义加上注释的话,可以为用户提供友好的提示.5函数对象的增加、删除Python是一种高级动态编程语言,变量类型是随时可以改变的。Python中的函数和自定义对象的成员也是可以随时发生改变的,可以为函数和自定义对象动态增加新成员。>>>deffunc():print(func.x)#查看func的成员>>>func()#现在函数func还没有成员x,出错AttributeError:'function'object

4、hasnoattribute'x‘>>>func.x=3#动态为函数增加新成员>>>func()3>>>delfunc.x#删除成员>>>func()#删除之后不可访问AttributeError:'function'objecthasnoattribute'x‘6函数的递归调用函数的递归调用是函数调用的一种情况,函数调用自己,自己再调用自己,自己再调用自己,…,当某个条件得到满足的时候,就不再调用了,然后再一层一层地返回知道该函数第一次调用的位置需要用栈来存储该函数离开的位置,栈比较小,如果递归调用很深,

5、则导致栈崩溃7尾递归尾递归是指:在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。8递归实现n的阶乘:deffact(n):ifn==1:return1returnn*fact(n-1)deffact(n):returnfact_iter(n,1)deffact_iter(num,product):ifnum==1:returnproductreturnfact_iter(num

6、-1,num*product)改成尾递归returnfact_iter(num-1,num*product)仅返回递归函数本身num-1和num*product在函数调用前就会被计算,不影响函数调用遗憾的是:大多数编程语言没有针对尾递归做优化,Python解释器也没有做优化,所以,即使把上面的fact(n)函数改成尾递归方式,也会导致栈溢出010203在Python中,定义函数时不需要声明函数的返回值类型,而是使用return语句结束函数的执行的同时返回任意类型的值,函数返回值类型与return语句返回表达

7、式的类型一致。如果函数没有return语句或者执行了不返回任何值的return语句,Python将认为该函数以returnNone结束,即返回空值函数基本语法9不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。函数参数不得不说的几件事(一)1)在定义函数时,对参数个数并没有限制,如果有多个形参,则需要使用逗号进行分隔.下面的函数用来接收2个参数,并输出其中的最大值:defprintMax(a,b):ifa>b:pirnt(a,'isthemax')else:print(b,'ist

8、hemax')2)对于绝大多数情况下,在函数内部直接修改形参的值不会影响实参:>>>defaddOne(a):print(a)#输出原变量a的值a+=1#这条语句会得到一个新的变量aprint(a)>>>a=3>>>addOne(a)34>>>a310函数参数不得不说的几件事(二)在有些情况下,可以通过特殊的方式在函数内部修改实参的值。>>>defmodify(v):#修改列表元素值v[0]=v[0]+1>>>a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。