当前位置:
文档之家› 《Python语言程序设计基础》数据类型-4.2 函数的参数和返回值
《Python语言程序设计基础》数据类型-4.2 函数的参数和返回值
变量的作用域
1. 全局变量和局部变量 局部变量是在一定范围内使用的变量,例如在函数体的内部定义的变
量,每个函数可以定义相同名称的局部变量,只能在函数内部进行访问, 不会影响其他函数。而全局变量是指可以在整个程序范围内访问,拥有 更加广泛的作用域。
变量的作用域
例如:进行数值加减法计算的程序。
变量的作用域
不定长参数
在函数定义时,如果希望函数能处理比参数个数更多的参数时,可以使用 不定长参数。其基本语法格式为:
def 函数名([参数列表],*args,**kwargs): 函数体 [return 返回值]
上述函数定义中,有两类参数,分别是普通参数和不定长参数,它们与普 通参数相比,前面多了*或**。*arg参数会以元组的方式存放超出普通参数个数 的参数,而**kwargs则是以字典的方式存放传入参数时命名的那些参数。
2. global和nonlocal关键字
那么是否一定就不能修改外部的全局变量的值呢?答案是否定的,我
们可以使用global和nonlocal关键字进行变量的修改。
调用函数语句: >>> n = 0 >>> global_counter() >>> 1 >>> global_counter()
>>> 2 >>> global_counter() >>> 3
《Python应用程序设计》 4.2 函数参数和返回值
目录
默认参数 不定长参数 函数的返回值 变量的作用域
默认参数
回顾上面的任务中编写过的函数sum_all(),它能够计算任意范围内的整数 之和,如果在函数定义部分分别给start和end设置一个默认值,则参数变为默 认参数。
默认参数
函数调用时,默认按照参数位置顺序的方式传递给函数,运用默认参数的 时候,要注意调用时要将带有默认值的参数放在参数列表的最后。参数出现的 位置也可以根据需要进行调整,这时可以采用参数名称的方式进行参数传递, 例如:sum_all(end=98,start=2)。这样也可以增强程序的可读性。
变量的作用域
2. global和nonlocal关键字 一般在嵌套的函数中使用nonlocal关键字来修改嵌套的上级函数的
作用域的变量。
调用函数语句: >>> make_counter() >>> 1
任务描述
任务名称:根据用户需求绘制圆形 编写函数draw_circle(),根据需要设定普通参数和不定长参数,用 户可以在绘制圆形前设置其半径、轮廓线、填充色、轮廓的粗细等属性。
调用 >>> print(cacu1(1,2,3,4)) >>> 10
>>> print(cacu2(1,2,3,4,m=5,n=6)) >>> 21
函数的定义与调用
2. 函数的调用
函数定义后不会自动执行,需要的时候可以进行调用。调用的方法为: 函数名([参数列表])
如定义完print_sysinfo()函数后,需要输入命令进行函数的调用: print_sysinfo()
不定长参数
如果要计算更多的数的和,可以在两数求和函数定义中增加一个不定长的 参数,并改写函数体部分,使其能够完成相应的功能。
调用 >>> print(cacu(1,2)) >>> 3
调用 >>> print(cacu1(1,2,3,4)) >>> 10
不定长参数
如果在传入参数的时候,列出了参数的名字,则可以将超出普通参数个数 的其他参数存放在**kwargs中对应的字典中。例如修改上述的代码能计算出**num1中所有元素的 和:
函数的返回值
函数定义中的return语句用于结束函数并将程序返回到函数被调用的部分继 续执行,也就是说函数中return后面的语句是不被执行的。return可以出现在函 数的任何部分,同时可以将0、1或多个结果返回给函数被调用的程序。例如:求 解一元二次方程的根。
函数的返回值
例如:求解一元二次方程的根。
拓展任务
任务名称:对数值大小进行比较 从两数大小的比较开始定义函数,然后通过定义不定长参数扩展到 能比较更多数值大小具有一定通用性的函数,并求出其中的最大值。
THANK YOU