python3 函数参数
1、缺省参数
在定义一个函数的参数是给其传入一个默认的值,不传的时候用默认参数,缺省参数只能放在后面
一个函数可以有多个缺省参数。
def test(a, b=22)
result = a + b
print(result)
return result
test(11)
test(22,33)
def test1(a, b=22, c = 55)
test1(11,c=2) #c命名参数
def test1(a, d, b=22, c = 55) #参数d是必须要传的
2、不定长参数
如果在定义形参的时候,在变量名前面加个*,加上*的形参有特殊功能
def add_num(a, b, *args): (a, b 参数必须传) #变量args有特殊作用,特殊的程度是,如果传递实参的个数大于形参的个数,剩下的给args ,如果多个值传给args那么他就是元组,当一个元组只有一个数据时间其表示为(1,)如果没有参数传给args那么他就是一个空元组,args必须放在末尾。
eg:
def test (a, b, c=33, *args, **kwargs): #**kwargs 以字典的方式存储
print(**kwargs) #打印出{'task':89, 'done':99}
test(11, 22, 33, task=89, done=99)
如果传入的多余的参数,且参数不带变量名,那么传给*args, 如果带变量名那么传给**kwargs,并且以字典方式保存
#将输入的传入的输进行相加
def sum_2(a, b, *args)
result = a + b
for num in args:
return result
3、拆包,元组、字典
A = (44, 55, 66)
B = {'name':'laowang', 'age':18}
def test(a, b, c, *args, **kwargs)
print(a)
print(b)
print(args)
print(kwargs)
test(11, 22, 33 ,A , B) #那么a是11 b是22 c是33 args是((44, 55, 66),{'name':'laowang','age':18}) kwargs是{}
如果 test(11, 22, 33 ,*A , **B) # 那么a是11 b是22 c是33 args是(44, 55, 66) kwargs是{'name':'laowang','age':18}))
* 和 ** 表示拆包,把元组拆成一个一个的值,把字典拆为key,value