函数的定义

  1. 函数是一个具有独立功能的代码块,目的是为了提高代码的复用性。
  2. 函数被定义好了之后并不会执行,需要进行手动调用才能使用。
  3. 调用方法为:函数名()

定义有参数的函数

  1. 定义有参数的函数定义在函数()中的为形参
  2. 调用函数是写入()中的为实参

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) # 也可以将函数定义后进行打印显示

形参类型和值的指定

  1. 形参类型指定:指定类型只是起到辅助作用,实参写入为非指定类型也能正常使用
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'>
  1. 形参设置默认值:默认参数可以通过形参进行设置,如果没有实参那么就用默认值
  2. 如果默认形参有默认值不传递实参那么也不会报错
  3. 如果传递实参那么覆盖默认值,使用实际传递的实参值
def a(x, y, z=2222): 
    print(x,y,z) 

a(1,2) # 打印结果为:1 2 2222

a(1,2,444) # 打印结果为:1 2 444

关键字参数和位置参数

  1. 可以通过关键字参数和位置参数进行函数的定义和使用
  2. 关键字参数可以将形参指定值进行写入,可以不用遵循形参的位置,只需一一对应即可
  3. 位置参数可默认代表形参和实参,当结合关键字参数使用时,位置参数必须放在关键字参数之前使用,否则会无法正确读取到
  4. 位置参数对应的就是该位置的形参,后续进行关键字参数写入是不能再次赋值

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'