python_53_函数补充
def test1(x,y=2): print(x,y) test1(1) test1(1,3) test1(1,y=4) #默认参数特点:调用函数的时候,默认参数非必须传递,默认参数放在后边 #用途:默认(安装)值 def test2(*args):#可变长参数(参数组),args被视为一个元组。 print(args) test2(1,4,5,9) a=test2(*[2,4,6,8]) # a=tuple([2,4,6,8]) #*args接收的是位置参数,不是关键字参数,转换成元组形式 def test3(a,*args):#参数组一定要往后放 print(a) print(args) test3(111,2,3,4,5,6,7) def test4(**kwargs):#可变长参数(参数组),kwargs被视为一个字典,接收N个关键字参数,转换成字典的形式 print(kwargs) print(kwargs['name']) print(kwargs['age']) # print(kwargs['sex']) test4(name='猪小芳',age=23,sex='妞儿') test4(**{'name':'猪小芳','age':23}) def test5(name,**kwargs): print(name) print(kwargs) test5('梁梁',age=30,sex='male') def test6(name,age=40,**kwargs): #参数组一定要往后放 print(name,age,kwargs) test6('小短腿七戒') test6('小短腿七戒',salary='18k',hobby='妞儿') test6('小短腿七戒',12,hobby='妞儿',salary='18k') test6('小短腿七戒',age=50,hobby='妞儿',salary='18k') test6('小短腿七戒',hobby='妞儿',salary='18k',age=88) #test6('小短腿七戒',44,hobby='妞儿',salary='18k',age=88) #出错,给age赋多个值 def test7(name,age=40,*args,**kwargs): #参数组一定要往后放 print(name,age,args,kwargs) test7('八戒',99) test7('八戒',99,hobby='妞儿',salary='18k') test7('八戒',99,'gege','meimei',hobby='妞儿',salary='18k') #test7('八戒',99,hobby='妞儿',salary='18k','gege','meimei')#错误原因,位置参数一定要写在关键字参数前边
def f1(*args): print(args,type(args)) f1(11) f1(11,22,33,44) f1([11,22,33,44,'qizhiguang']) f1(*[11,22,33,44,'qizhiguang']) f1('qizhiguang') f1(*'qizhiguang') def f2(**kwargs): print(kwargs,type(kwargs)) f2(n1='qizhiguang',n2=18) dic={'k1':'v1','k2':'v2'} f2(kk=dic) f2(**dic)