认识参数
- 参数,函数参数的作用是传递数据给函数使用
- 形参,由于定义函数时参数不是实际数据,会在调用函数时传递给他们实际数据,所以定义函数时的参数叫形式参数,简称形参。
- 实参,实际意义上的参数,是一个实际存在的参数,可以是字符串或是数字等,调用函数时用到的参数
- 位置参数,位置参数就是按照形参中给定的参数的顺序
- 关键字参数,在传递参数的时候,可以按照形参的名字给定参数
- 默认参数,函数定义时,为参数设置一个默认值,当函数调用时,没有传入这个参数值,直接使用这个默认值
- 可变参数,可变参数有两种形式:一种是 *args, 另一种是 **kwargs
- *args:这种形式表示接受任意多个实际参数将其放到一个元组中。
- **kwargs:这种形式表示接受任意多个实际参数将其放到一个字典中,类似关键字参数
参数类型
形参与实参
形参相当于变量,定义函数时指定的参数; 实参是在调用函数时传递进去的参数,一般传递真实数据
def add_sum(a, b): # a 和 b (占位)参数,叫 形参result = a + bprint(result)add_sum(1, 2) # 调用函数时传入真实的数据如 1,2 ,叫做 实参
位置参数
在调用函数时传递的实参与定义函数时的参数顺序一致,且传递和定义参数的顺序及个数必须一致
def user_info(name, age, gender):print(f'他的名字叫 {name},今年 {age} 岁了,性别是 {gender}')user_info('tom',18,'man')------------------------------------------------------>>> 他的名字叫 tom,今年 18岁了,性别是 man
关键字参数
通过 键=值 形式调用函数,其中关键字的名称就是定义函数时形参的名称。关键字参数在调用时必须在位置参数后面
def user_info(name, age, gender):print(f'他的名字叫{name},今年{age}岁了,性别是{gender}')user_info('jerry', gender='男', age=17)
上述代码中,调用函数时,传递的关键字实参之间可以顺序不一致
默认参数
默认参数要放在其他参数后面,但是放在缺省参数前面
def user_info(name, age, gender='男'):print(f'他的名字叫{name},今年{age}岁了,性别是{gender}')user_info('jerry', 17) # 不传值则使用默认值user_info('tom', 17, gender='女') # 传值则修改默认参数值
不定长参数
也叫可变参数、缺省参数,用于不确定调用的时候传递多少个参数(不传参也可以)的场景,可用缺省位置参数、关键字参数来进行参数传递
- 基于元组的可变参数: *args,缺省位置参数
```python
def user_info(*args):
print(args) # 传递的所有参数都会被 args 变量收集
user_info(‘tom’) >>> (‘tom’,) user_info(‘t0m’,18) >>> (‘t0m’,18)
> args 相当于变量名,返回的是元组- **基于字典的可变参数: **kwargs,缺省关键字传递**```pythondef user_info(**kwargs):print(kwargs) # 传递的所有关键字参数都会被 kwargs 变量收集user_info(age=18, gender='男') >>> {'age': 18, 'gender': '男'}
kwargs 相当于变量名,返回的是字典,类似组包过程
