python之函式的返回值【進階篇】
阿新 • • 發佈:2019-02-11
返回值簡介
- 簡單介紹 print 和 return 的區別,print 僅僅是列印在控制檯,而 return 則是將 return 後面的部分作為返回值作為函式的輸出,可以用變數接走,繼續使用該返回值做其它事。
- 函式需要先定義後呼叫,函式體中 return 語句的結果就是返回值。如果一個函式沒有 reutrn 語句,其實它有一個隱含的 return 語句,返回值是 None,型別也是 'NoneType'。
- return 語句的作用:結束函式呼叫、返回值
指定返回值與隱含返回值
函式體中 return 語句有指定返回值時返回的就是其值
函式體中沒有 return 語句時,函式執行結束會隱含返回一個 None 作為返回值,型別是 NoneType,與 return 、return None 等效,都是返回 None。
指定 return 返回值函式舉例:
123456789101112 | def showplus(x): print (x) return x + 1 num = showplus( 6 ) add = num + 2 print (add) 輸出結果: 6 9 |
隱含 return None 舉例:
1234567891011 | def showplus(x): print (x) num = showplus( 6 ) print (num) print ( type (num)) 輸出結果: 6 None < class 'NoneType' > |
return 語句位置與多條 return 語句
python 函式使用 return 語句返回 "返回值",可以將其賦給其它變數作其它的用處;
所有函式都有返回值,如果沒有 return 語句,會隱式地呼叫 return None 作為返回值;
一個函式可以存在多條 return 語句,但只有一條可以被執行,如果沒有一條 reutrn 語句被執行,同樣會隱式呼叫 return None 作為返回值;
如果有必要,可以顯式呼叫 return None 明確返回一個None(空值物件)作為返回值,可以簡寫為 return,不過 python 中懶惰即美德,所以一般能不寫就不寫;
如果函式執行了 return 語句,函式會立刻返回,結束呼叫,return 之後的其它語句都不會被執行了
舉例 :
1 def showplus(x): 2 print(x) 3 return x + 1 4 print(x + 1) #該語句會執行麼 5 6 print(showplus(6)) 7 8 9 輸出結果: 10 6 11 7
返回值型別
無論定義的是返回什麼型別,return 只能返回單值,但值可以存在多個元素;
return [1,3,5] 是指返回一個列表,是一個列表物件,1,3,5 分別是這個列表的元素;
return 1,3,5 看似返回多個值,隱式地被Python封裝成了一個元祖返回
舉例 :
def showlist(): return [1,3,5] #多元素,返回的是什麼型別 print(type(showlist())) print(showlist()) 輸出結果: <class 'list'> [1, 3, 5] #列表型別
舉例 :
def showlist(): return 2,4,6 #多值時,不指定型別 print(type(showlist())) print(showlist()) 輸出結果: <class 'tuple'> #預設封裝成元祖型別
函式巢狀
函式有可見範圍(內外可見關係),這就是作用域的概念;
內部函式不能被外部直接呼叫,會拋異常 NameError。
舉例 :
def outer(): def inner(): #可以理解為內部函式 print("inner") print("outer") outer() 輸出結果: outer此時如果呼叫 outer(),只會執行 print("outer"),因為 inner 雖然在 outer 函式內,但它也是一個函式,函式如果要呼叫,就必須用 '函式名()' 方式。
舉例 :
def outer(): def inner(): print("inner") print("outer") inner() outer() 輸出結果: outer inner
【完】