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

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

三、非固定参数: 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}