標籤:傳回值
本人水平有限,如有錯誤,還望指出,感謝!
本章詳細介紹 傳回值:
0x 00 傳回值簡介
0x 01 指定傳回值與隱含傳回值
0x 02 return 語句位置與多條 return 語句
0x 03 傳回值類型
0x 04 函數嵌套
0x 00 傳回值簡介
0x 01 指定傳回值與隱含傳回值
指定 return 傳回值函數舉例:
def showplus(x): print(x) return x + 1 num = showplus(6)add = num + 2print(add)輸出結果:69
隱含 return None 舉例:
def showplus(x): print(x)num = showplus(6)print(num)print(type(num))輸出結果:6None<class ‘NoneType‘>
0x 02 return 語句位置與多條 return 語句
-
python 函數使用 return 語句返回 "傳回值",可以將其賦給其它變數作其它的用處
-
所有函數都有傳回值,如果沒有 return 語句,會隱式地調用 return None 作為傳回值
-
一個函數可以存在多條 return 語句,但只有一條可以被執行,如果沒有一條 reutrn 語句被執行,同樣會隱式調用 return None 作為傳回值
-
如果有必要,可以顯式調用 return None 明確返回一個None(空值對象)作為傳回值,可以簡寫為 return,不過 python 中懶惰即美德,所以一般能不寫就不寫
-
如果函數執行了 return 語句,函數會立刻返回,結束調用,return 之後的其它語句都不會被執行了
舉例 1:
def showplus(x): print(x) return x + 1 print(x + 1) #該語句會執行麼print(showplus(6))輸出結果:67
舉例 2:
def showplus(x): print(x) # 5 return x + 1 # 6 return x + 2 # 該語句也不會被執行print(showplus(5))輸出結果:56
舉例 3:
def guess(x): if x > 3: return "> 3" else: return "<= 3"print(guess(10))print(guess(2))輸出結果:> 3<= 3
舉例 4:
# for .. else .. 語句 (意外終止情況)
# 表示如果 for 語句段的內容正常迴圈結果才會執行 else 段的語句,如果 for 在迴圈過程中時被 break 或者 return 語句意外終止迴圈,就不會執行 else 段中的語句。
def fn(x): for i in range(x): if i > 4: return i else: print("{} is not greater than 4".format(x))print(fn(3))print(fn(6))返回結果:3 is not greater than 4None5
0x 03 傳回值類型
-
無論定義的是返回什麼類型,return 只能返回單值,但值可以存在多個元素。
-
return [1,3,5] 是指返回一個列表,是一個列表對象,1,3,5 分別是這個列表的元素
-
return 1,3,5 看似返回多個值,隱式地被Python封裝成了一個元祖返回
舉例 1:
def fn(): return 3 #單值時,返回的是什麼類型 print(fn())print(type(fn()))輸出結果:3<class ‘int‘> #int 整數類型
舉例 2:
def showlist(): return [1,3,5] #多元素,返回的是什麼類型print(type(showlist()))print(showlist())輸出結果:<class ‘list‘>[1, 3, 5] #清單類型
舉例 3:
def showlist(): return (2,4,6) #多元素,返回的是什麼類型print(type(showlist()))print(showlist())輸出結果:<class ‘tuple‘> #元祖類型(2, 4, 6)
舉例 4:
def showlist(): return 2,4,6 #多值時,不指定類型print(type(showlist()))print(showlist())輸出結果:<class ‘tuple‘> #預設封裝成元祖類型
0x 04 函數嵌套
舉例 1:
def outer(): def inner(): #可以理解為內建函式 print("inner") print("outer")outer()輸出結果:outer
此時如果調用 outer(),只會執行 print("outer"),因為 inner 雖然在 outer 函數內,但它也是一個函數,函數如果要調用,就必須用 ‘函數名()‘ 方式。
舉例 2:
def outer(): def inner(): print("inner") print("outer")inner() #外部無法引用內建函式,內建函式只在本地範圍有效輸出結果,拋出異常:Traceback (most recent call last): File "C:/python/return_value.py", line 6, in <module> inner()NameError: name ‘inner‘ is not defined
舉例 3:
def outer(): def inner(): print("inner") print("outer") inner()outer()輸出結果:outerinner
總結:
此節介紹了函數的傳回值、傳回值的作用,指定與不指定傳回值時的不同,傳回值類型,以及函數嵌套時傳回值的使用。
Python 傳回值