函数进阶
一、参数
1.1 位置参数和关键字参数
- 实参按照传递方式的不同分为位置参数和关键字参数两种
1.1.1 位置参数
- 调用函数的时候让实参和形参一一对应
- 第一个实参给第一个形参赋值,第二个给第二个赋值
def func1(x, y, z):
print(f'x:{x}, y:{y}, z:{z}')
func1(10, 20, 30)
func1(30, 10, 20)
1.1.2 关键字参数
- 让实参和形参通过关键字(即形参的名字)对应
- 形参名1=数据1,形参名2=数据2…
func1(x=1, y=2, z=3)
func1(z=3, x=1, y=2)
1.1.3 关键字参数和位置参数混用
func1(10, z=40, y=20)
func1(x=10, 20, z=40)
1.2 参数默认值
- 定义函数的时候给参数赋默认值
- 调用函数时,有默认值的参数可以不用赋值
- 形参名=默认值
- 定义函数时有默认值的形参需要放在没有默认值的形参的后面
def func2(x, y, z=100):
print(f'x:{x}, y:{y}, z:{z}')
func2(1, 2, 3)
func2(10, 20)
1.3 参数类型说明
- 定义的时候,可以对参数类型进行说明
- 默认值是什么类型,参数类型说明就是什么类型
- 形参名:数据类型
def func3(x: list) -> None:
pass
1.4 不定长参数
1.4.1 *参数
- 在形参前加* 或加** ,就可以让这个参数变成不定长参数
- 带*的参数会变成一个元组
- 一个函数可以同时存在带* 和不带* 的形参
def func4(*x):
print(f'x:{x}')
func4()
func4(10)
func4(10