函数返回值是Python中让函数“输出”结果的关键机制。想象你定义了一个函数处理数据(比如计算两数之和),但如果只靠print,结果只能显示在屏幕上,无法被后续代码使用。而返回值能把函数内部的计算结果“传递”到外部,让你可以继续处理或存储这个结果。
1. 最简单的返回值:用return输出结果¶
要让函数返回结果,需要在函数内部用return语句。比如定义一个计算两数之和的函数:
def add(a, b):
result = a + b # 计算两数之和
return result # 返回结果给外部
# 调用函数,接收返回值
sum_result = add(3, 5)
print(sum_result) # 输出:8(结果被存储在sum_result中)
这里return result就是函数的“输出”操作,add(3,5)会返回8,并被赋值给sum_result变量。
2. 为什么需要返回值?对比print¶
很多初学者会混淆print和return。print只是“打印”结果到屏幕,而return能让结果被后续代码使用:
# 用print的情况(结果无法被后续计算)
def print_sum(a, b):
print(a + b) # 只打印,不返回
print_sum(2, 3) # 输出:5,但无法存储结果
# 用return的情况(结果可被后续使用)
def return_sum(a, b):
return a + b # 返回结果
sum_2 = return_sum(2, 3)
sum_3 = return_sum(4, 5)
total = sum_2 + sum_3 # 可以继续计算
print(total) # 输出:14(2+3=5,4+5=9,5+9=14)
3. 没有return时,函数返回什么?¶
如果函数中没有return语句,Python会默认返回None(表示“空”或“无”):
def no_return(a, b):
a + b # 只计算,没有return
result = no_return(1, 2)
print(result) # 输出:None(无法被后续计算)
print(result * 3) # 报错!因为None不能乘以3
结论:要让函数有“输出结果”,必须用return返回需要的值。
4. 返回不同类型的数据¶
函数返回值可以是任何类型:数字、字符串、列表、字典等。
# 返回字符串
def get_greeting(name):
return f"Hello, {name}!" # 返回字符串
greet = get_greeting("小明")
print(greet) # 输出:Hello, 小明
# 返回列表
def get_numbers():
return [1, 3, 5, 7] # 返回列表
nums = get_numbers()
print(nums[0]) # 输出:1(访问列表第一个元素)
5. 返回多个值(用逗号分隔)¶
Python函数可以同时返回多个值(本质是返回一个元组),调用时用多个变量接收:
def get_user_info():
name = "小红"
age = 20
gender = "女"
return name, age, gender # 返回多个值(元组)
# 解包赋值给多个变量
user_name, user_age, user_gender = get_user_info()
print(f"姓名:{user_name},年龄:{user_age},性别:{user_gender}")
# 输出:姓名:小红,年龄:20,性别:女
如果只需要部分值,可以用_忽略不需要的返回值:
name, _, gender = get_user_info() # 忽略年龄
print(f"姓名:{name},性别:{gender}") # 输出:姓名:小红,性别:女
6. 注意:return后函数立即停止¶
一旦函数执行到return,后面的代码就不会运行:
def early_return():
return "我是第一个返回值"
print("这句话永远不会执行!") # return后函数终止
print(early_return()) # 输出:我是第一个返回值
小练习¶
试着写一个函数calculate_stats(numbers),接收一个列表numbers,返回该列表的“平均值”和“最大值”。调用函数并打印结果。
提示:可以用sum()计算总和,max()取最大值,再用return返回两个值。
总结:函数返回值通过return实现,能让函数结果被后续代码使用;return可返回任意类型(包括多个值);没有return时函数默认返回None。掌握返回值是Python编程的基础技能,能让你的代码更灵活!