函数的参数是函数内部与外部交流的纽带,上一篇文章我们使用了最简单的参数形式(就一个参数)。接下来测试一下多个参数的情况是怎样的?

    1.测试1

    image.png

    例子中使用了两个参数p1和p2, 函数的功能就是打印出p1 vs p2。接着调用了两次sayHello函数,两次给参数赋了不同的值,从结果可以看出函数调用时是按顺序给参数赋值的,即第1个参数赋给了p1,第二个参数赋给了p2,以此类推。当然了这里只有两个参数没得推。那么有时候我很任性不想按顺序给参数怎么办?

    2.测试2

    image.png

    像这样在函数调用时把参数名带上(如p1 = 'hello')就可以不按顺序给参数了。python中称之为关键字参数。虽然可以不按顺序写参数但还是不够任性,不写参数行不行?

    3.测试3

    image.png

    很显然自己定义的参数含着泪也要写完啊。难道就没有别的办法吗?

    4.测试4

    image.png

    这一次还是很任性的没给参数,程序也没有报错,那是因为函数定义时给了参数。既然这样那参数还有啥用呢?当然有用了,函数定义时给的是默认参数,需要时可以传入别的参数来替换给的默认值。

    除以上这些python的参数还有更任性的用法,当我在定义函数的时候还不知道要几个参数怎么办?看测试5:image.png

 测试代码中给了一个参数people但是在参数前面有个星号。实际上这个参数是一个元组(元组是python内置的一种数据结构可以用来放多个元素)。调用函数时的几个参数会被看成是元组的元素。不定长参数还有另一种形式那就是带两个星号的参数。

image.png

带两个星号的参数本质上是一个字典,所以传递参数的时候也要按照key=value的形式传递。还有更变态的传递参数的方法那就是一个星号和两个星号一起使用。不过一个星号必须放在前面:

image.png