函数
执行特定任务以完成特定功能的一段代码
函数的意义
- 代码复用
- 异常实现细节
- 提高可维护性
- 提高可读性、便于调试
函数的创建调用
创建方法
def 函数名 ([入参]):
函数体
[return xxx]
调用方法
函数名([实际参数])
示例
def add(a, b):
return a + b
res = add(10, 20)
print(res) # 30
函数的参数传递
位置实参
根据形参的位置进行实参传递,位置对应
def add(a, b): # a,b为形参,在函数的定义处
return a + b
res = add(10, 20) # 10,20为实参,在函数的调用处
print(res) # 30
关键字实参
根据形参的名称进行实参传递
def add(a, b): # a,b为形参,在函数的定义处
return a + b
res = 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 = 11
n2 = [1, 2, 3]
print('n1:', n1) # n1: 11
print('n2:', n2) # n2: [1, 2, 3]
fun_demo(n1, n2)
print('n1:', n1) # n1: 11
print('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, even
arr = [1, 2, 3, 4, 5, 6]
b = fun1(arr)
print(b) # ([2, 4, 6], [1, 3, 5])
函数没有返回值时,return可以省略。
函数的返回值为1个时,返回其类型。
函数是否需要返回值,视情况而定。