函數返回值是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編程的基礎技能,能讓你的代碼更靈活!