PYTHON学习0023:函数—参数—-2019-6-17


参数作用:可以让函数更灵活,不只能做死的动作,还可以根据调用时传参的不同来决定函数内部执行流程。
PYTHON学习0023:函数---参数----2019-6-17
一、默认参数:
PYTHON学习0023:函数---参数----2019-6-17
以上函数中,countr这个形式参数,传入的实际参数基本都是“CN”,就像我们在网站上注册,像国籍这种信息,用户不填写,默认就会是中国。就是通过默认参数实现的。
那么把这个country变成默认参数很简单,写成如下即可:
PYTHON学习0023:函数---参数----2019-6-17
注意:默认参数必须放在位置参数最后面,否则影响传值。

二、关键参数:
1、定义:正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可。(指定了参数名的参数就叫关键参数),但记住一个要求就是,关键参数必须在位置参数(以位置顺序确定对应关系的参数)之后。比如下函数:
PYTHON学习0023:函数---参数----2019-6-17
可以这样调用:
PYTHON学习0023:函数---参数----2019-6-17
但不能这样调用:
PYTHON学习0023:函数---参数----2019-6-17
也不能这样调用:
PYTHON学习0023:函数---参数----2019-6-17

三、非固定参数:
1、如果形式参数中出现了*号,则传递的参数就可以不再是固定个数,且会把传的所有参数打包成元祖形式。
比如:
m = ["a","b","c","d","e"]

def stu(*name):
for i in name:
print("报警发送给",i)

stu(m) #这里加号表示吧m列表里每一个元素当做传输传递,不加号就表示吧整个列表当做一个参数传递。当然也可以分别传递参数进去。
输出为:
报警发送给 a
报警发送给 b
报警发送给 c
报警发送给 d
报警发送给 e
注意:这种非固定参数必须位置参数后面。
2、如果参数前加2个**号,则在传递参数时,可以接收字典形式传参或者未定义的关键字参数传递。

比如:
m = ["a","b","c","d","e"]

d={"degree":"primary","age":22}

def stu(msg,*name,**args):

    print(msg,name,args)

stu("回来",*m,*d)
stu("回来",
m,a=2,b=3)
输出结果为:

回来 (‘a’, ‘b’, ‘c’, ‘d’, ‘e’) {‘degree’: ‘primary’, ‘age’: 22}
回来 (‘a’, ‘b’, ‘c’, ‘d’, ‘e’) {‘a’: 2, ‘b’: 3}