Python程序设计基础-函数与模块

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

函数与模块5.2函数的参数5.4变量作用域1.5计算机网络的类别5.6lambda表达式5.7常用内置函数5.8模块5.5函数的嵌套5.1函数定义与使用5.3函数的返回值1.1Python语言简介Python语言简介在程序编制过程中,为了实现代码复用和保证代码的一致性,人们常会把具有特定功能或经常使用的代码编写成独立的代码单元,称为“函数”,并赋予函数一个名称,当程序需要时就可以调用该函数并执行相应功能。在程序中使用函数具有以下好处:(1)可以将功能复杂的程序进行细化后交由多人开发,这样有利于团队分工,缩短开发周期。(2)通过功能细化,可以有效缩减代码的长度,代码复用得以体现,当再次开发类似功能的产品时,只要稍作修改或直接引用就可以重复使用。(3)程序可读性得到提高,代码调试相对简单和代码后期维护难度降低。python系统中自带的一些函数就叫做内置函数,比如:print()、str()等等,不需要我们自己编写,调用就可以执行。还有一种是第三方函数,就是其它程序员编好的一些函数,共享给大家使用。前面说的这两种函数都是拿来就可以直接使用的。我们自己编些的方便自己工作学习用的函数,就叫做自定义函数。5.1函数定义与使用1.1.1Python的发展史在Python中,函数定义的语法如下。def函数名([参数列表]):‘’’’’’函数体在Python中,定义函数要遵守以下简单的规则。(1)函数定义以def关键词开头,后接函数名称和圆括号()。(2)任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数,如果有多个参数则使用逗号(,)分割。(3)函数的第一行语句可以选择性地使用注释文字,用于存放函数功能和使用说明。(4)函数内容以冒号起始,并且要以空格缩进。(5)return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。若有多个返回值时,则返回值之间必须用逗号分隔,调用时要有多个变量来接收返回值。5.1函数定义与使用5.1函数定义与使用函数创建后并不会执行,必须在程序中调用该函数才会执行,调用函数的语法如下。[变量=]函数名称([参数列表])如果函数有返回值,可以使用变量来存储返回值,在函数的返回值对于调用不重要时可以忽略,即不使用变量存储函数返回值。5.2函数的参数函数定义时括号内是使用逗号分隔的参数列表,称作形式参数(简称形参)。函数可以有多个参数,也可以没有参数,即使没有参数,定义和调用函数时括号必须存在,表示这是一个函数没有需要接收的参数。调用函数时传递的参数,称作实际参数(简称实参),将实参的引用(内存地址)传递给形参。定义函数时不需要声明参数类型,Python解释器会根据实参的值自动推断形参类型。总的来说,Python的函数参数主要分为以下几种:(1)必选参数;(2)默认参数;(3)可变参数;(4)关键字参数。5.2.1必选参数必选参数可以说是最常见的了,顾名思义,必选参数就是在调用函数的时候要传入和函数定义时数量一致的参数。定义函数draw_mathematics(len,n)时有两个参数,在调用该函数时draw_mathematics(150,5),可以看出调用函数时的参数和定义函数时参数数量相同。Python的优点默认参数是指在定义函数的时候提供一些默认值,如果在调用函数的时候没有传递该参数,则自动使用默认值,否则使用传递时该参数的值。带有默认参数的函数定义语法如下。def函数名(...,形参名=默认值):函数体函数使用默认参数的例子如例5-2所示。例5-2:程序代码:#例5-2函数定义之绘制正n边形defdraw_mathematics(n,len=150):'''功能:绘制正n边形;参数:n:边数;len:边长,默认参数,默认值为150。'''importturtleangle=360/n#转换角度5.2.2默认参数turtle.shape(turtle)turtle.pensize(5)turtle.color(red,green)for_inrange(n):turtle.forward(len)turtle.right(angle)return#函数调用,绘制正5边形,边长为默认参数150。draw_mathematics(5)5.2.2默认参数Python的缺点使用draw_mathematics(5)语句调用函数时,只传递了一个参数,表明绘制一个正五边形,第二个参数采用定义时的默认值150。当使用draw_mathematics(5,100)语句调用函数时,传递了两个参数,函数定义时的默认参数值此时不被使用,而使用实参值100。函数默认参数只在定义时进行解释,对应列表、字典这样可变类型的默认参数,这一点可能会导致严重的逻辑错误,而这种错误或许会耗费大量精力来定位和纠正。5.2.2默认参数Python的缺点程序代码:#例5-3函数定义之默认参数(可变对象)defadd_to_list(list=[]):list.append('end')returnlist#函数调用#OKprint(add_to_list([1,2,3]))#OKprint(add_to_list(['a','b','c']))5.2.2默认参数Python的缺点#没有传递参数,使用默认值,OKprint(add_to_list())#没有传递参数,使用默认值,两个'end'print(add_to_list())#没有传递参数,使用默认值,三个'end'print(add_to_list())运行结果:[1,2,3,'end']['a','b','c','end']['end']['end','end']['end','end','end']5.2.2默认参数5.2.3可变参数在某些情况下,我们在定义函数的时候,无法预估函数应该制定多少个参数,这时我们就可以使用可变参数了,也就是,函数的参数个数是不确定的。带有可变参数的函数定义语法如下。def函数名称(...,*参数):函数体在上面的函数定义代码中,参数前面加一个*号,表示此参数是可变的。在调用函数时,我们可以给该函数传递任意多个参数,也包括0个参数。例5-5:定义一个求和函数sum(),函数的参数个数不确定,使用可变参数*number。程序代码:#例5-5函数定义之可变参数defsum(*numbers):num_sum=0fornuminnumbers:num_sum+=numreturnnum_sum5.2.3可变参数#函数调用print(sum())print(sum(1,2))print(sum(1,2,3))print(sum(1,2,3,4))运行结果:036105.2.4关键字参数可变参数允许将不定数量的参数传递给函数,关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。带有关键字参数的函数定义语法如下。def函数名称(...,**参数):函数体例5-6:程序代码:#例5-6函数定义之关键字参数defsum(**numbers):num_sum=0forkey,valueinnumbers.items():num_sum+=valuereturnnum_sum5.2.4关键字参数#函数调用dict1={'x':1}print(sum(**dict1))dict2={'x':1,'y':2}print(sum(**dict2))运行结果:13互联网在生活中的地位1.2.1PythonIDLE的简介关键字参数有什么用?它可以扩展函数的功能。比如,在register()函数里,我们保证能接收到name(用户名)和age(年龄)这两个参数,但是,如果调用者愿意提供更多的参数,也可以接收到。试想正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是选填项,利用关键字参数来定义这个函数就能满足注册的需求。defregister(name,age,**kw):print('name:',name,'age:',age,'other:',kw)把dic作为关键字参数传入:extra={'city':'Harbin','job':'Engineer'}register(‘MyName’,18,**extra)运行结果:name:MyNameage:18other:{'city':'Harbin','job':'Engineer'}5.2.4关键字参数1.2.1PythonIDLE的简介5.2.5参数组合在实际的使用中,我们经常会同时用到必选参数、默认参数、可变参数和关键字参数或其中的一些。但是,需要注意的是,它们在使用的时候是有顺序的,依次是必选参数、默认参数、可变参数和关键字参数。比如,定义一个包含上述四种参数的函数:例5-7:程序代码:#例5-7函数定义之组合参数deffunc(x,y=0,*args,**kwargs):print('x=',x)print('y=',y)print('args=',args)print('kwargs=',kwargs)互联网已经成为现代社会最为重要的基础设施互联网在生活中的地位互联网在生活中的地位1.2.2Python开发环境安装#函数调用print(#必选参数)func(1)print(#必选参数;默认参数)func(1,2)print(#必选参数;默认参数;可变参数)args=[1,2,3]func(1,2,*args)print(#必选参数;默认参数;可变参数;关键字参数)args=[1,2,3]kwargs={'kw1':1,'kw2':2}func(1,2,*args,**kwargs)5.2.5参数组合互联网定义1.2.2Python开发环境安装运行结果:#必选参数x=1y=0args=()kwargs={}#必选参数;默认参数x=1y=2args=()kwargs={}5.2.5参数组合5.2.5参数组合#必选参数;默认参数;可变参数x=1y=2args=(1,2,3)kwargs={}#必选参数;默认参数;可变参数;关键字参数x=1y=2args=(1,2,3)kwargs={'kw1':1,'kw2':2}5.2.5参数组合通过以上函数的定义和调用可知:(1)默认参数需要放在所有必选参数的后面。(2)应该使用不可变对象作为函数的默认参数。(3)*args表示可变参数,**kwargs表示关键字参数。(4)参数组合在使用的时候是有顺序的,依次是必选参数、默认参数、可变参数和关键字参数。(5)*args和**kwargs是Python的惯用写法。5.3函数的返回值函数的最后都会有一个返回值,使用return语句返回,可以用来获取该函数执行结果返回给调用该函数的用户,让调用该函数的程序根据返回的值不同采取相应的措施。返回值可以指定,但不是必须指定的,如果不指定默认返回None。例子如下例5-8所示。例5-8程序代码:#例5-8函数定义之返回值deftest_is_pass(score):if(score60):returnFalseelse:returnTrue5.3函数的返回值#函数调用print(test_is_pass(59))print(test_is_pass(90))运行结果:FalseTrue函数遇到return后就结束,该函数return下还有多少代码都不执行。5.3函数的返回值例5-9:程序代码:#例5-9函数定义之返回值deftest_is_pass(score):if(score60):returnFalseelse:returnTrueprint(祝你取得更好成绩!)5.3函数的返回值#程序调用print(test_is_pass(90))运行结果:True函数运行后,只输出了标志通过的”True”返回值,并没有执行return语句后面的内容,也就是没有输出祝你取得更好成绩!。函数也可以返回多个值,返回多值其实就是返回一个tuple,在语法上返回一个tuple可以省略括号,也可以返回列

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功