def test(x,y,z): #这添加形参 print(x) print(y) print(z) test(1,2,3) # 这里添加实参

1、形参和实参

2、位置参数和关键字

#test(1,2)#位置参数调用:实参与形参一一对应,不能多,不能少 #test(y=1,x=2)#关键字 :与形参顺序无关 #test(y=1,x=2,1)# 关键字参数不能放在位置参数前面 #test(1,z=2,y=5)

3、默认参数:调用函数的时候,默认函数可有可无。

用途:1.默认安装值 2.固定默认值

def test(x,y=2): print(x) print(y) test(1,y=3)

参数组:参数组要放在最后面如test3(name,x=2,*args)

#def test(*gg): #可接受任意数量实参,变成元组的形式 print(gg)

test(1,2,3,4,5,5,5,5,5,7,9) test(*[1,2,3,4,5]) # gg=tuple([1,2,3,4,5])

*args:接受n者位置参数,转换成元组

def test(x,*args): # *号代表功能 print(x) print(args)

#test(1,2,3,4,5,6,7) #test(*[1,2,3,4,5,6,7]) #args=[1,2,3,4,5,6,7]

接受n个关键字参数,转成字典的形式

def test1(**kwargs):! print(kwargs) print(kwargs["name"]) print(kwargs["age"])

test1(name="alex",age=8) #把n个关键字参数,转换成字典 test1(**{"name":"alex","age":"8"})

位置参数和关键字参数

#def test3(name,**kwargs): print(name) print(kwargs)

test3("alex",age=18,sex="m")

默认参数,位置参数,关键字参数

def test3(name,x=2,**kwargs): print(name) print(x) print(kwargs)

test3("alex",age=18,sex="m",x=4)

def test3(name,x=2,*args,**kwargs): print(name) print(x) print(args) print(kwargs)

test3("alex",age=18,sex="m",x=4)

总结:位置参数只会传给形参和*args,关键字参数传给**kwargs! *args会把n个位置参数转换成元祖的形式! **kwargs会把n个关键字参数转换成字典形式!m=‘alex’ (m是key,‘alex’是values)