1.可变参数
可变参数,即是传入的参数个数是可变的,可以是1个,2个,任意个
举例:数学题,a2+b2+…
代码一:
def sqrt_sum(numbers):
sum=0
for n in numbers:
sum = sum +n*n
return sum
print(sqrt_sum((1,2)))
缺点:没有使用可变参数,只能传二个及以上的参数,且每次必须建立一个集合,要么小括号,要么中括号
代码二:
def sqrt_sum(*numbers):
sum=0
for n in numbers:
sum = sum +n*n
return sum
print(sqrt_sum(1))
好处:可以定义0个或任意个参数,且不用建立集合,直接输入参数既可
如果有现成的集合可以使用,python允许在list或者tuple前面加*,可使其也变成一个可变参数
2.关键字参数
可变参数在被调用的时候会被自动装载成一个元组,关键字参数,则是直接组装成一个字典
关键字参数可以用来函数扩展,如,在一个注册程序中,姓名和性别是必选的,其他如,年龄,国籍是可选的,
利用关键字参数可以实现这一要求
格式为:**+变量
代码一:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)#print输出多个字符时,用逗号隔开即可
person('Bob', 35, city='Beijing')
person('Bob', 35)
3.命名关键字参数
用来限制关键词参数的名字,例如,只接收city作为关键字参数
格式:*用逗号隔开,*后的参数都被视作命名关键字参数
def person(name,age,*,city):
print(name,age,city)
print(person('liming',21,city='beijng'))
如果输出没有定义的变量
print(person('liming',21,job='beijng'))``
就会报错