函数返回值
返回单个值
函数可以通过 return 语句返回一个值。一旦执行到 return 语句,函数就会停止执行,并将指定的值返回给调用者。例如:
返回多个值
实际上,Python函数只能返回一个值,但可以通过返回一个元组来模拟返回多个值。例如:
def divide(a, b):
quotient = a // b
remainder = a % b
return quotient, remainder
result = divide(7, 3)
print(result)
# 解包返回的元组
quotient, remainder = divide(7, 3)
print(f"Quotient: {quotient}, Remainder: {remainder}")
在 divide 函数中,返回了商和余数组成的元组。可以直接打印这个元组,也可以通过解包将元组的元素分别赋给不同的变量。
无返回值(返回None)
如果函数没有 return 语句,或者 return 语句后面没有值,函数将返回 None 。例如:
def print_message(message):
print(message)
result = print_message("Hello, world!")
print(result)
在这个例子中, print_message 函数只是打印一条消息,没有明确的返回值,所以 result 的值为 None 。
函数作用域
局部作用域
在函数内部定义的变量具有局部作用域,只能在函数内部访问。例如:
def local_scope_example( ):
local_variable = 10
print(f"Inside function: {local_variable}")
local_scope_example()
# 下面这行代码会报错,因为 local_variable 超出了作用域
# print(local_variable)
在 local_scope_example 函数中定义的 local_variable 只能在函数内部使用,函数外部无法访问。
全局作用域
在函数外部定义的变量具有全局作用域,可以在整个模块中访问。例如:
global_variable = 20
def global_scope_example( ):
print(f"Inside function: {global_variable}")
global_scope_example( )
print(f"Outside function: {global_variable}")
在这个例子中, global_variable 在函数外部定义,具有全局作用域,函数内部和外部都可以访问它。
修改全局变量
如果要在函数内部修改全局变量,需要使用 global 关键字声明。例如:
count = 0
def increment_count():
global count
count += 1
return count
new_count = increment_count()
print(new_count)
在 increment_count 函数中,使用 global 关键字声明 count 是全局变量,这样就可以在函数内部修改它的值。
递归函数
递归函数是指在函数内部调用自身的函数。递归通常用于解决可以分解为相同问题的子问题的情况。例如,计算阶乘可以使用递归实现:
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
result = factorial(5)
print(result)
在 factorial 函数中,当 n 为 0 或 1 时,函数返回 1,这是递归的终止条件。否则,函数返回 n 乘以 factorial(n - 1) ,即不断调用自身来计算阶乘。