2020-12-01
Python培訓
今天好程序員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
此節介紹了函數的返回值、返回值的作用,指定與不指定返回值時的不同,返回值類型,以及函數嵌套時返回值的使用。
以上就是關于好程序員Python培訓之函數返回值的示例代碼詳解的全部內容,希望對大家的學習有所幫助,最后想要了解更多關于Python方面內容的小伙伴,請關注好程序員Python培訓官網、微信公眾號等平臺.
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號