函数

执行特定工作以实现特定性能的一段代码

函数的意义

  • 代码复用
  • 异样实现细节
  • 进步可维护性
  • 进步可读性、便于调试

函数的创立调用

创立办法

def 函数名 ([入参]):    函数体    [return xxx]

调用办法

函数名([理论参数])

示例

def add(a, b):    return a + bres = add(10, 20)print(res)  # 30

函数的参数传递

地位实参

依据形参的地位进行实参传递,地位对应
def add(a, b):  # a,b为形参,在函数的定义处    return a + bres = add(10, 20)  # 10,20为实参,在函数的调用处print(res)  # 30

关键字实参

依据形参的名称进行实参传递
def add(a, b):  # a,b为形参,在函数的定义处    return a + bres = add(b=10, a=20)  # 10,20为实参,在函数的调用处print(res)  # 30

函数调用对参数的影响

def fun_demo(a, b):    print('arg1:', a)  # arg1: 11    print('arg2:', b)  # arg2: [1, 2, 3]    a = 100    b.append(10)    print('arg1:', a)  # arg1: 100    print('arg2:', b)  # arg2: [1, 2, 3, 10]n1 = 11n2 = [1, 2, 3]print('n1:', n1)  # n1: 11print('n2:', n2)  # n2: [1, 2, 3]fun_demo(n1, n2)print('n1:', n1)  # n1: 11print('n2:', n2)  # n2: [1, 2, 3, 10]

可变对象受函数外部批改操作的影响。
不可变对象不受函数体内操作的影响。

函数的返回值

函数的返回值为多个时,返回后果为元组。

def fun1(num):    odd = []    even = []    for item in num:        if item % 2 == 0:            odd.append(item)        else:            even.append(item)    return odd, evenarr = [1, 2, 3, 4, 5, 6]b = fun1(arr)print(b)  # ([2, 4, 6], [1, 3, 5])

函数没有返回值时,return能够省略。
函数的返回值为1个时,返回其类型。
函数是否须要返回值,视状况而定。