《Python语言程序设计》课件5 Python函数与模块-1.pptx

《Python语言程序设计》课件5 Python函数与模块-1.pptx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

函数与模块在程序设计中,常需要将一些经常重复使用的程序代码定义为函数,方便重复调用执行,以提高程序的模块化和代码的重复利用率,这就是自定义函数。函数对大型程序的开发是很有用的。模块(module)是Python最高级別的程序组织单元,比函数颗粒度更大,一个模块可以包含若干个函数。与函数类似,模块也分系统模块和用户自定义模块,用户自定义的一个模块就是一个.py程序文件。

函数的定义Python的函数由函数名、参数和函数体组成。自定义函数用def关键字声明,函数的命名原则与变量命名相同。函数语句使用缩进表示与函数体的隶属关系。与其他高级语言相比,Python声明函数时不需要声明其返回类型,也不需要声明参数的传入类型。格式如下:def函数名([形式参数列表]): 执行语句 #函数体 [return返回值]例如:defmyfunc(x,y): returnx+y该函数接收两个输入参数,返回它们的和。

函数的调用在函数定义时,用来接收调用该函数时传入的参数称为形式参数(parameter),简称形参。在调用函数时,实际传递给函数的参数称为实际参数(argument),简称实参。函数调用时提供的实际参数应与被调用函数的形式参数按顺序一一对应,而且参数类型要兼容。

函数的调用例带参数的函数调用示例。defmyfunc(x,y): #此处x,y是形式参数 returnx+ya,b=2.5,3.6print(%0.2f+%0.2f=%0.2f%(a,b,myfunc(a,b))) #此处括号中的a,b是实际参数运行结果为:2.50+3.60=6.10其中,x,y分别为形参,a,b分别为实参,在函数中经过计算,以函数名将值返回主调程序。

函数的参数传递调用带参数的函数时,调用函数与被调用函数之间会有数据传递。形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调用函数提供的原始数据。

参数传递方式(1)通过引用将实参复制到局部作用域的函数中,意味着形参与传递给函数的实参无关。这种实参向形参传送数据的方式属于“值传递”,即实参的值传给形参,是一种单向传递方式,不能由形参传返回给实参。在函数执行过程中,形参的值可能被改变,但这种改变对它所对应的实参没有影响。

看下面的例子。defchange(number,string,lst):number=5string=GoodByelst=[4,5,6]print(Inside:,number,string,lst)num=10string=hellolst=[1,2,3]print(Before:,num,string,lst)change(num,string,lst)print(After:,num,string,lst)程序运行结果如下:Before:10hello[1,2,3]Inside:5GoodBye[4,5,6]After:10hello[1,2,3]

参数传递方式从上面的结果可以看出,函数调用前后,数据并没有发生改变,虽然在函数局部区域对传递进来的参数进行了相应的修改,但是仍然不能改变实参对象的内容。因为传递进来的三个参数在函数内部进行了相关的修改,相当于三个形参分别指向了不同的对象(存储区域),但这三个形参都不改变实参,所以函数调用前后、实参指向的对象并没有发生改变,说明如果在函数内部对参数重新赋值新的对象,这并不会改变实参的对象。这就是函数参数传递的第一个规则。

参数传递方式(2)可以在适当位置修改可变对象。可变对象主要就是列表和字典,这个适当位置就是前面分析的对列表或字典的元素的修改不会改变其ID。对于不可变类型,是不可能进行修改的,但是对于可变的列表或字典类型,局部区域的值是可以改变的,这和前面分析的一样,看下面的例子。

defchange(lst,dict):lst[0]=10dict[a]=10print(Insidelst={},dict={}.format(lst,dict))dict={a:1,b:2,c:3}lst=[1,2,3,4,5]print(Beforelst={},dict={}.format(lst,dict))change(lst,dict)print(Afterlst={},dict={}.format(lst,dict))程序运行结果如下:Beforelst=[1,2,3,4,5],dict={a:1,b:2,c:3}Insidelst=[10,2,3,4,5],dict={a:10,b:2,c:3}Afterlst=

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档