函数的定义
- 函数是一个具有独立功能的代码块,目的是为了提高代码的复用性。
- 函数被定义好了之后并不会执行,需要进行手动调用才能使用。
- 调用方法为:函数名()
定义有参数的函数
- 定义有参数的函数定义在函数()中的为形参
- 调用函数是写入()中的为实参
def a(x, y): # x,y为形参
print(x,y) # 当函数a被调用后,打印调用时写入的实参1,2
a(1,2) # 1,2为实参,实参的个数必须与形参一致
3. 实参的个数必须与形参的个数一致
4. 函数使用return进行返回
def a(x, y):
return x,y # (1, 2) 通过return可以将指定内容进行返回
print(a(1, 2)) # 可以直接使用print方法打印返回值,返回值的类型为tuple
b = a(1, 2)
print(b) # 也可以将函数定义后进行打印显示
形参类型和值的指定
- 形参类型指定:指定类型只是起到辅助作用,实参写入为非指定类型也能正常使用
def a(x:int,y:float):
print(x,y)
print(type(x),type(y))
a(1,2.3) # 打印结果为:1 2.3 类型为:<class 'int'> <class 'float'>
a("123",[1,2]) # 打印结果为:123 [1, 2] 类型为:<class 'str'> <class 'list'>
- 形参设置默认值:默认参数可以通过形参进行设置,如果没有实参那么就用默认值
- 如果默认形参有默认值不传递实参那么也不会报错
- 如果传递实参那么覆盖默认值,使用实际传递的实参值
def a(x, y, z=2222):
print(x,y,z)
a(1,2) # 打印结果为:1 2 2222
a(1,2,444) # 打印结果为:1 2 444
关键字参数和位置参数
- 可以通过关键字参数和位置参数进行函数的定义和使用
- 关键字参数可以将形参指定值进行写入,可以不用遵循形参的位置,只需一一对应即可
- 位置参数可默认代表形参和实参,当结合关键字参数使用时,位置参数必须放在关键字参数之前使用,否则会无法正确读取到
- 位置参数对应的就是该位置的形参,后续进行关键字参数写入是不能再次赋值
def a(x, y, z):
print(x,y,z)
a(z=1,x=2,y=3) # 输出结果为:2 3 1
a(1,z=2,y=3) # 输出结果为:1 3 2
a(1,x=2,y=3) # TypeError: a() got multiple values for argument 'x'