一、函数的参数有四种,位置参数、默认参数、可变参数和关键字参数
def func(x, y=0, *arg, **args): '''x为位置参数 y有默认值 *arg为可变参数 **args为关键字参数 ''' print('x= ', x) print('y= ', y) print('*arg= ', arg) print('**arg= ', args)
二、仅输入位置参数时,默认参数会打印默认值
>>> func(1)
x= 1
y= 0
*arg= ()
**arg= {}
三、输入两个参数
>>> func(1,2) x= 1 y= 2 *arg= () **arg= {}
三、可变参数:可变参数接收0个或多个参数。输入的多个参数会自动组合成一个tuple,变成可变参数
>>> func(1,2,3,4,5) x= 1 y= 2 *arg= (3, 4, 5) **arg= {}
可变参数可以直接接收一个list或者tuple,但是要在参数前面加上*
>>> list1 = [3, 4, 5] >>> tuple1 = (3, 4, 5)
>>> func(1,2,*list1) x= 1 y= 2 *arg= (3, 4, 5) **arg= {}
>>> func(1,2,*tuple1) x= 1 y= 2 *arg= (3, 4, 5) **arg= {}
四、关键字参数:关键字参数接收0个或多个带参数名的参数,这些参数会自动组合为一个dict,变成关键字参数
>>> func(1, 2, [3, 4, 5], 6, name='alex', age=18) x= 1 y= 2 *arg= ([3, 4, 5], 6) **arg= {'name': 'alex', 'age': 18}
关键字参数可以直接接收一个dict,但是要在参数前面加上**
>>> dict1 = {'name': 'Alex', 'age': 18}
>>> func(1, 2, [3, 4, 5], 6, **dict1)
x= 1
y= 2
*arg= ([3, 4, 5], 6)
**arg= {'name': 'Alex', 'age': 18}
五、实例说明
1、入参为可变参数
def sum(*nums):#求所有入参之和 sum = 0 for num in nums: sum += num return sum
输入0个或多个参数,查看结果:
>>> print('sum()= ', sum()) #输入0个参数,相当于传一个空元组
sum()= 0
>>> print('sum(1,2,3)= ', sum(1,2,3))
sum(1,2,3)= 6
>>> print('sum(*[1,2,3])= ', sum(*[1,2,3]))
sum(*[1,2,3])= 6
>>> print('sum(*(1,2,3))= ', sum(*(1,2,3)))
sum(*(1,2,3))= 6
2、入参为关键字参数
def user_info(name, age, **others): #获取用户信息 print(name, age, others)
输入用户信息,查看结果:
>>> user_info('zhang',18) #关键字参数为空时,返回一个空字典
zhang 18 {}
>>> user_info('wang',19, city='shanghai',salary=500)
wang 19 {'city': 'shanghai', 'salary': 500}
>>> user_info('li',20, sex='M')
li 20 {'sex': 'M'}
>>> user_info('zhou',21,**{'sex': 'W', 'city': 'beijing', 'salary': 3000})
zhou 21 {'sex': 'W', 'city': 'beijing', 'salary': 3000}