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)