函数的定义与使用
定义函数的基本结构
def 函数名(参数列表):
当前函数的具体功能的代码
。。。。
函数封装并不会执行,只是定义了,如果要使用定义的函数,需要进行函数的调用
函数调用
函数名()
def love(): print('I') print('love') print('you') love() I love you >>>
函数定义后,不调用不执行 不能在函数定义前调用函数 函数的调用不受次数的限制
函数名不要冲突,冲突会被覆盖
函数参数
在定义函数时,小括号内可以定义形参
def love(num): print(f'I love you {num}') love('小花') I love you 小花 >>> def love(x,y): print(f'{x}I love you {y}') love('小花','小刚') 小花I love you 小刚 >>>
普通参数
就是位置参数,也叫顺序参数,是必须传递的参数
默认参数
如有三个参数,x,y,z,至少要传递两个,这时最好一个参数就是默认参数,默认参数需要在定义形参时指定默认值
def love(x,y,z=100): print(x,y,z) love(1,2) 1 2 100 >>>
收集参数
定义一个形参,收集多余的实参
在定义函数时,如果是收集参数,需要在形参前面加一个*,例如*args
接收多余的参数,会存储在args中,形成一个元组
def han(x='+',*args): if x=='+': print('加法运算',args) else: print('减法运算',args) han('+',12,15,18) 加法运算 (12, 15, 18) >>>
关键字参数
关键字参数定义在收集参数之后
关键字参数必须通过形参的名字来进行传递
def love(a,b,c=3,*args,name): print(a,b,c,args) print(name) love(1,2,4,123,124,125,name='张三') 1 2 4 (123, 124, 125) 张三 >>>
关键字参数收集
def func(a,b,c=3,*args,name,age,**kwargs): print(a,b,c) print(args) #普通收集函数。会把多余的参数收集为 元组 print(name,age) print(kwargs) #关键字参数收集,会把多余的参数收集为 字典 func(1,2,4,55,50,45,name='xiaozhang',age=25,sex='m',tel='12306',address='beijing') 1 2 4 (55, 50, 45) xiaozhang 25 {'sex': 'm', 'tel': '12306', 'address': 'beijing'} >>>
注意形参声明的位置
普通参数,默认参数,收集参数,关键字参数,关键字收集参数
很少出现五种参数