函数的参数主要有位置参数,默认参数,可变参数,关键字参数
1.位置参数:
def power(x,y): s = 1 while y > 0: y = y-1 s = s*x print(s) power(2,8)
如果之传入一个参数则会报错缺少一个position参数
2.默认参数:def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
该函数只用传入一个参数就可以调用,降低函数调用难度,power(5)相当于传入power(5,2)
3.可变参数:指参数个数不确定def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
#定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple num = [4,5,6,6,6,6] num2 =(1,1,1,1,12) calc(*num) calc(*num2)
4.关键字参数:(字典作参数)
def person(name,age,**kw): print('name:',name) print('age:',age) print('others:',kw) #而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict person('xuguanghui',33) #others: {} person('quxiaojie',22,city1='beijing')>>> extra = {'city': 'Beijing', 'job': 'Engineer'} >>> person('Jack', 24, **extra) name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
5.命名关键字参数
如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收
city
和job
作为关键字参数。这种方式定义的函数如下:def person(name, age, *, city, job): print(name, age, city, job)