定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
def func(x,y): calc=x+y return calc z=func(1,2) print(z)
特性:
- 减少重复代码
- 使程序变的可扩展
- 使程序变得易维护
参数
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:
def test(x,y,z=2): print(x) print(y) print(z) test(2,4)
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
关键参数必须放在位置参数之后。
def printinfo( name, age ): print ("名字: ", name) print ("年龄: ", age) printinfo( age=18, name="zz" )
非固定参数
处理比当初声明时更多的参数
def studentinfo(name,age,*args): # *args 会把多传入的参数变成一个元组形式 print(name,age,args) studentinfo("zz",22,"CN","Python") def studentinfo2(name,age,*args,**kwargs): # **kwargs 会把多传入的参数变成一个dict形式 print(name,age,args,kwargs) studentinfo2("zz",22,"CN","Python",sex="male")
全局变量与局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
score=59 def your_score(score): print(score) score=60 print(score) your_score(score) print(score)