1.参数的简单介绍
- 参数
- 形式参数(形参):在函数定义的时候,在括号中写⼊变量,这个变量就称为是函数的参数。
- 实际参数(实参):在函数调⽤的时候,可以给定义时候的形参传递具体的数据值,供其使⽤。
- 注: 在函数调⽤的时候,会将函数的实参值传递给形参。
- 好处: 可以让函数更加的通用,函数中的数据值不是固定的,是调用的时候,你传递的。
- 使用场景: 判断 函数中 数据值是不是固定不变的, 如果是变化的,就可以使⽤参数传递。
- 注意点: ⽬前书写的函数, 如果存在形参,必须传递相同个数的实参。
2.函数传参的方式
函数传参:是指如何将 实参的值传递给形参
(1)位置传参
在函数调用的时候按照 形参的顺序将实参的值传递给形参
(2)关键字传参
在函数调用的时候, 指定将实参传递给哪个形参
(3)混合使用
- 位置参数必须写在关键字参数的前边, 关键字参数必须放在位置参数的后边
- 同一个形参只能接收一个实参值(不能既使用位置传参和关键字传参给同一个形参传参)
def show_info(name, age):
print(f"name:{name}, age: {age}")
# 位置传参
show_info('小明', 18)
# 关键字传参
show_info(age=18, name='张三')
# 混合使用
show_info('李四', age=17)
# show_info(name='赵六', 19) # 关键字参数必须放在位置参数的后边
# show_info('王五', name="李四") # 不能既使用位置传参和关键字传参给同一个形参传参
3.缺省参数(默认参数)
(1)定义
在函数定义的时候, 给形参一个默认的数据值,这个参数就是缺省参数(默认参数)
(2)特点
在函数调用的时候, 缺省参数可以不用传递实参值.
- 如果不传实参值, 使用的就是默认值
- 如果传递实参值, 使用的就是传递的实参值
(3)注意点
缺省参数必须写在 普通参数的后边
(4)代码
"""
定义 show_info 参数 姓名,年龄, 性别, 将年龄设置为默认参数 18, 性别设置为默认 保密
"""
def show_info(name, age=18, sex='保密'):
print(name, age, sex)
# 调用
show_info('张三', 18, '男') # 张三 18 男
# 李四
show_info('李四') # 李四 18 保密
# 王五 19
show_info('王五', 19) # 王五 19 保密
# 赵六 男
show_info('赵六', sex='男') # 赵六 18 男
# show_info('赵六', '男') # 赵六 男 保密
小tips:parameter(形参) argument(实参)
4.多值参数(可变参数/不定长参数)
- 在函数定义的时候,不确定在调用的时候实参有多少个,此时可以使用 多值参数
- 在普通的参数前边加上一个 *,这个参数就变为 多值参数
- 这个参数可以接收任意多个位置传参的数据, 类型 元组
- 这个形参一般写作 args(arguments), 即 *args
参数顺序:# 普通, 缺省, 多值
def 函数名(普通, *args, 缺省):passdef func(*args): print(args) func() # () func(1, 2, 3) # (1, 2, 3)
练习1: 定义一个函数,my_sum,作用,可以对任意多个数字进行求和计算.
def my_sum(*args): # args 是元组
num = 0
for i in args:
num += i
return num
print(my_sum()) #
print(my_sum(1)) # 1
print(my_sum(1, 2)) # 3
print(my_sum(1, 2, 3)) # 6
练习2:需求对 元组(my_tuple = (1, 2, 3, 4, 5) )中的所有数据使用 my_sum 进行求和注意: 想要把 列表(元组) 中的数据作为位置参数 进行传递, 只需要在 列表(元组)前边加上一个 * ,进行 拆包 即可
def my_sum(*args): # args 是元组
num = 0
for i in args:
num += i
return num
my_tuple = (1, 2, 3, 4, 5)
# 需求对 元组中的所有数据使用 my_sum 进行求和
# 想要把列表(元组) 中的数据作为位置参数进行传递, 只需要在列表(元组)前边加上一个 * ,进行拆包即可
print(my_sum(*my_tuple)) # 15
未完待续。。。