函数的作用
- 减少重复代码
- 程序易于维护
- 程序易于扩展
函数的定义
>>> def calculate(x,y): #定义函数名为calculate,参数为x和y result = x+y return result #返回结果 >>> a = calculate(x=3,y=4) #调用,关键参数x=3,y=4 >>> print(a) 7
函数参数
形参,实参:形参类似与数学函数中的变量,实参是则是运算时变量实际的值
位置参数:调用函数时,可以按照函数定义时的位置顺序给定参数
关键参数:调用函数时,可以不按顺序给行形参,但须指明对应
默认参数:函数定义时,可以给某个形参定义好初始值,调用时可不给定其实参;默认参数必须写在最后
>>> def calculate(x,y,z=3): #默认参数为z=3 res = x+y+z return res >>> a = calculate(3,4) #位置参数对应,z可以不给定 >>> print(a) 10
非固定参数:可接受额外参数
- *args接收的是元组,实参以位置参数实现
- *kwargs接收的是字典,实参以关键参数实现
- 由于位置参数需要写在最左,*args要能接收值的话,前面的参数都必须以位置参数实现
>>> def register(name,age,cn=00,*args,**kwargs): print(name) print(age) print(cn) print(args) print(kwargs) >>> register('xing','55kg','yang','666',height=170) xing 55kg yang ('666',) {'height': 170}
函数的返回值
返回使用return关键词
- 如果未指定return,则返回None
- 函数执行过程中遇到return语句便会停止执行并返回值
>>> def test(): return 1,2,4,4 >>> test() #返回多个值会将变成元组 (1, 2, 4, 4)
函数的作用域
- 局部变量和全局变量存在不同的内存空间,不会冲突
- 就近原则:函数内部未定义变量时,会去全局变量里调用
- 函数内部可定义全局变量,使用global 声明
- globals(),locals() 可查看全局变量和局部变量
- 函数内不可以修改全局变量
>>> name = 'xing' #全局变量 >>> def test(): name = 'lala' #局部变量 print(name) >>> test() lala >>> print(name) xing