十二、python基礎:函數的返回值return

十二、python基礎:函數的返回值return

1、我們爲什麼需要return返回值

在剛開始學的時候,有些同學可能會疑惑return返回值可以給我們帶來什麼,我們需要函數反饋它的處理結果的話,直接使用print()打印出來不就好了嗎?

在實際開發項目中,print()只是我們用來嘗試打印結果,調試代碼用的,它是可以輸出結果,但是隻能輸出在控制檯給我們看。如果你想在其他函數中使用這個函數的處理結果,那print()幫不到你。

這時候就需要用到return了。

舉個例子,我有一個函數A,只要給它傳數據,它就能對數據進行清洗,過濾掉無用數據,但我需要它把處理後的數據給到下一個函數繼續處理,那麼這時候就需要用到返回值了,讓它處理後return出來。

2、返回值的作用

2.1、反饋結果:

return可以將函數運行的結果反饋給函數,在外部調用函數的時候,使用一個變量接收即可將函數運行的結果輸出;但如果函數內部沒有返回值,也沒有打印的動作,在外部調用該函數的時候,你在控制檯上看不到任何輸出,也無法獲取函數運行的結果(無返回值將默認返回None,也就是隱性返回值)

這是一個簡單的加法計算的例子:
先定義了add函數,給它傳2個參數,就能計算2個參數的和。在函數外部,你使用print(add(1, 2)),它可以把計算的結果打印出來,但如果你想要在另一個函數中調用add函數的處理結果進行判斷,需要先用一個變量去接收它的處理結果:ret = add(1, 2)

def add(x,y):
    a = x + y
    return a
# 直接將add計算的結果打印出來
print(add(1, 2))
# 直接拿到add計算的結果,進行其他運算
print(100 + add(1, 2))
# 在函數外先用變量接收處理結果,方便後面調用這個結果。
ret = add(1, 2)
if ret == 3:
	print('兩數之和小於3')

在這裏插入圖片描述

2.2、流程控制:

return用在函數中,不僅可以將函數執行的結果返回,還能控制這個函數的結束。不管你函數下方還有沒有代碼,只要它一步步符合條件,走到return這一行,整個函數就結束了。

看下方的代碼,猜測一下控制檯會不會輸出:“第二次打印”。

def add(x,y):
	if x == 1:
		a = x + y
		print('第一次打印')
    	return a
   	print('第二次打印')
   	
add(1, 2)

答案是不會,我們傳的參數是x=1,符合判斷條件,流程已經走到return這邊了,整個函數就結束了。
在這裏插入圖片描述

3、return和break比較

return和break很相似,都能用來控制流程的結束。
但它們有2點區別:
1、return可以有返回值也可以無返回值。break無返回值;
2、return通常是用在函數中的,如果你想在循環內使用return控制循環結束,必須保證它最外層是一個函數,否則執行的結果就會報一個語法錯誤。而break則是要求你必須用在循環中,如果它不是循環,只是一個函數,那也不能使用break。

4、return返回值的數量

4.1、return可以沒有返回值,當它沒有返回值的時候,其實就是返回了一個None。

4.2、可以只有1個返回值;

4.3、可以有多個返回值。
如果有多個返回值的話,默認是按照元組的形式返回的。如果你只用一個變量去接收多個返回值,收到的結果就是一個元組。如果你想把一一接收每個返回值,那就使用多個變量去接收。
例如:

def add(x, y):
	x += 1
	y += 2
	return x,y
# 直接打印出來是一個元組
print(add(1, 2))
# 使用2個變量去接收,可以分別接收到返回的2個值
a, b = add(1, 2)
print(a, b)

在這裏插入圖片描述
但你也可以讓它按照列表的形式返回,並且用列表的索引取值,取出每個返回值。

def add(x, y):
	x += 1
	y += 2
	return [x,y]
# 直接打印出來是一個元組
print(add(1, 2))
# 接收列表的時候,取出返回值可以使用列表的索引取值
a = add(1, 2)[0]
b = add(1, 2)[1]
print(a, b)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章