函数的参数

1、必须参数(位置参数)
调用函数时根据函数定义的参数位置来传递参数。

def test1(x,y):
    print("x={0},y={1}".format(x,y))
    print("x + y = ",x + y)

#调用函数:必须参数必须传值,且实参与形参位置一一对应
test1(1,4)

2、默认参数
用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。

def test2(x,y,pore = "+"):
    print("x:{0},y:{1}进行{2}运算".format(x,y,pore))

#调用函数:默认参数不传递值时,调用默认参数
#一般默认参数放在必须参数的后面
test2(3,4)
test2(5,6,"*")

3、实参关键字参数

def test3(x,y,pore):
    print("x:{0},y:{1}进行{2}运算".format(x, y, pore))

#调用函数:可以打破默认参数的传递顺序
test3(3,4,"+")
test3(y = 3,x = 7,pore="+")

4、实参强制关键字参数

#必须使用实参关键字参数传值
def test4(*,x,y,pore):
    print("x:{0},y:{1}进行{2}运算".format(x, y, pore))

test4(y = 5,x = 7,pore="&")

5、可变参数

a = (1,2,3,4,5)
#
def sum(*args):
    print("可变参数的形参将参数封装到tuple中:",args)

    #输出时再次解包
    print(*args)

#这里将元组a解包成1,2,3,4,5
#元组解包
sum(*a)

#将传入的参数包装在tuple中
sum(1,2,3,4)

6、关键字可变参数

def test(**kwargs):
    print("传入的关键字可变参数存放到字典中,key-value一一对应")
    print(**kwargs)

#调用函数
test(name="jeery")
test(name='tom',sex="男")
test(name='mark',sex="男",age=19)

结果:

传入的关键字可变参数存放到字典中,key-value一一对应
{'name': 'jeery'}
传入的关键字可变参数存放到字典中,key-value一一对应
{'name': 'tom', 'sex': '男'}
传入的关键字可变参数存放到字典中,key-value一一对应
{'name': 'mark', 'sex': '男', 'age': 19}