好程式設計師Python培訓分享函式返回值的示例程式碼詳解
文中透過示例程式碼介紹的非常詳細,下面我們一起來看一下吧。
0x 00 返回值簡介
回顧下,上一節簡單介紹了函式及其各種引數,其中也有簡單介紹print 和 return 的區別, print 僅僅是列印在控制檯,而 return 則是將 return 後面的部分作為返回值作為函式的輸出,可以用變數接走,繼續使用該返回值做其它事。
函式需要先定義後呼叫,函式體中return 語句的結果就是返回值。如果一個函式沒有 reutrn 語句,其實它有一個隱含的 return 語句,返回值是 None ,型別也是 'NoneType' 。
return 語句的作用:結束函式呼叫、返回值
0x 01 指定返回值與隱含返回值
函式體中return 語句有指定返回值時返回的就是其值
函式體中沒有return 語句時,函式執行結束會隱含返回一個 None 作為返回值,型別是 NoneType ,與 return 、 returnNone 等效,都是返回 None 。
指定return 返回值函式舉例:
def showplus(x):
print(x)
return x + 1
num = showplus(6)
add = num + 2
print(add)
輸出結果:
6
9
隱含returnNone 舉例:
def showplus(x):
print(x)
num = showplus(6)
print(num)
print(type(num))
輸出結果:
6
None
<class 'NoneType'>
0x02return 語句位置與多條 return 語句
python 函式使用 return 語句返回 " 返回值 " ,可以將其賦給其它變數作其它的用處
所有函式都有返回值,如果沒有return 語句,會隱式地呼叫 returnNone 作為返回值
一個函式可以存在多條return 語句,但只有一條可以被執行,如果沒有一條 reutrn 語句被執行,同樣會隱式呼叫 returnNone 作為返回值
如果有必要,可以顯式呼叫returnNone 明確返回一個 None( 空值物件 ) 作為返回值,可以簡寫為 return ,不過 python 中懶惰即美德,所以一般能不寫就不寫
如果函式執行了return 語句,函式會立刻返回,結束呼叫, return 之後的其它語句都不會被執行了
舉例1 :
def showplus(x):
print(x)
return x + 1
print(x + 1) # 該語句會執行麼
print(showplus(6))
輸出結果:
6
7
舉例2 :
def showplus(x):
print(x) # 5
return x + 1 # 6
return x + 2 # 該語句也不會被執行
print(showplus(5))
輸出結果:
5
6
舉例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))
返回結果:
is not greater than 4
None
0x03 返回值型別
無論定義的是返回什麼型別,return 只能返回單值,但值可以存在多個元素。
return[1,3,5] 是指返回一個列表,是一個列表物件, 1,3,5 分別是這個列表的元素
return1,3,5 看似返回多個值,隱式地被 Python 封裝成了一個元祖返回
舉例1 :
def fn():
return 3 # 單值時,返回的是什麼型別
print(fn())
print(type(fn()))
輸出結果:
<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'> # 預設封裝成元祖型別
0x04 函式巢狀
函式有可見範圍( 內外可見關係 ) ,這就是作用域的概念。
內部函式不能被外部直接呼叫,會拋異常NameError 。
舉例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()
輸出結果:
outer
inner
此節介紹了函式的返回值、返回值的作用,指定與不指定返回值時的不同,返回值型別,以及函式巢狀時返回值的使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2738495/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Python培訓分享函式的定義與使用示例程式設計師Python函式
- 好程式設計師Python培訓分享簡述fetchone()函式程式設計師Python函式
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師Python培訓分享For迴圈用法詳解程式設計師Python
- 好程式設計師Python培訓分享Python的遞迴函式與匿名函式呼叫程式設計師Python遞迴函式
- 好程式設計師Python培訓分享Python中程式和執行緒詳解程式設計師Python執行緒
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 好程式設計師Java培訓分享For迴圈詳解程式設計師Java
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- 好程式設計師Python培訓分享API自動化實戰詳解程式設計師PythonAPI
- 好程式設計師Python培訓之詳解eval好與壞程式設計師Python
- 好程式設計師web前端培訓分享詳解JavaScript學習筆記建構函式程式設計師Web前端JavaScript筆記函式
- 好程式設計師Python培訓分享numpy簡介程式設計師Python
- 好程式設計師Python培訓分享Django中介軟體基礎用法詳解程式設計師PythonDjango
- 好程式設計師Python培訓分享Python生成器的詳細介紹程式設計師Python
- 好程式設計師Python培訓分享Python系列之字串的使用程式設計師Python字串
- 好程式設計師Python培訓分享Python如何呼叫RPC介面程式設計師PythonRPC
- 好程式設計師Python培訓分享Python配置gRPC環境程式設計師PythonRPC
- 好程式設計師Python培訓分享Python異常處理程式設計師Python
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Python培訓分享資料型別Set集合例項詳解程式設計師Python資料型別
- 好程式設計師Python培訓分享入門之元組列表字典詳解程式設計師Python
- 好程式設計師Python培訓分享Python程式設計中常見的異常處理程式設計師Python
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python
- 好程式設計師Python培訓分享Python爬蟲工具列表大全程式設計師Python爬蟲
- 好程式設計師Python培訓分享Python爬蟲相關框架程式設計師Python爬蟲框架
- 好程式設計師Python培訓分享學Python要注意什麼程式設計師Python
- 好程式設計師Python培訓分享如何寫Python裝飾器程式設計師Python
- 好程式設計師Java培訓分享BigDecimal的用法程式設計師JavaDecimal
- 好程式設計師web前端培訓分享關於parseInt函式的一切程式設計師Web前端函式
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師Python培訓分享開發工具推薦程式設計師Python
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師Java培訓分享Java動態代理機制詳解程式設計師Java
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Python培訓分享python中爬蟲常用到的正規表示式程式設計師Python爬蟲