函数的返回值,作用域、匿名函数
一、函数的返回值
知识点解释:
- 若函数运行结果需在其他函数中使用,需定义为带返回值的函数。
- 使用
return
关键字返回结果,return
可在函数任意位置,用于结束函数。 - 返回值可以是单个值或多个值(多个值时,返回元组类型)。
代码示例:
# 无返回值
def sums(a, b):
print(a + b)
sums(3, 5) # 输出:8
# 单个返回值
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 输出:8
# 多个返回值
def get_info():
name = "张三"
age = 20
return name, age
name, age = get_info()
print(name, age) # 输出:张三 20(实际返回元组类型)
二、变量的作用域
知识点解释:
- 局部变量:在函数参数或函数内部定义,仅在函数内有效,函数执行结束后生命周期结束。
- 全局变量:在函数外定义,或在函数内用
global
修饰,作用于整个程序,程序结束后生命周期结束。
代码示例:
# 局部变量
def test_local():
local_var = 10 # 局部变量
print("局部变量:", local_var)
test_local()
# print(local_var) # 报错,局部变量外部不可用
# 全局变量
global_var = 20 # 函数外定义的全局变量
def test_global():
global global_var_modify # 声明函数内使用全局变量
global_var_modify = 30
print("函数内全局变量:", global_var)
test_global()
print("函数外全局变量:", global_var_modify) # 输出:30
三、匿名函数 lambda
知识点解释:
- 无名称的函数,仅能使用一次,适用于函数体只有一句代码且只有一个返回值的场景,简化代码。
- 语法:
result = lambda 参数列表: 表达式
(表达式结果自动作为返回值)。
代码示例:
# 普通函数
def square(x):
return x ** 2
print(square(5)) # 输出:25
# 匿名函数等价实现
square_lambda = lambda x: x ** 2
print(square_lambda(5)) # 输出:25
# 直接调用匿名函数
print((lambda a, b: a * b)(4, 6)) # 输出:24(直接调用,无变量存储)