關(guān)于python返回值return用法詳解
一.含義
"return"是編程語(yǔ)言中的一個(gè)關(guān)鍵字,通常用于函數(shù)或方法的結(jié)尾,表示將執(zhí)行結(jié)果返回給調(diào)用者。
通俗講就是一個(gè)事物反饋給你的東西。就像你一拍桌子,會(huì)返回聲音和力的反作用力。
二.作用
負(fù)責(zé)函數(shù)返回值,返回一個(gè)參數(shù)或數(shù)據(jù)等。
退出當(dāng)前函數(shù),導(dǎo)致return下方的(函數(shù)體內(nèi)部的‘縮進(jìn)的’)代碼不執(zhí)行。(在使用try語(yǔ)句時(shí)除外)
def fun(): print('hhh') return 'ok' # 執(zhí)行到該return語(yǔ)句時(shí),函數(shù)終止,后邊的語(yǔ)句不再執(zhí)行 print('ooo') def func(): try: print('hhh') return 'ok' # 會(huì)在執(zhí)行finally后才執(zhí)行 finally: # finally語(yǔ)句塊中的語(yǔ)句依然會(huì)執(zhí)行,無(wú)論是否發(fā)生異常,都會(huì)在函數(shù)返回之前執(zhí)行 print('ooo') print(fun()) print('----------') print(func()) ''' 運(yùn)行結(jié)果: hhh ok ---------- hhh ooo ok '''
三.沒(méi)有return時(shí)
所有函數(shù)在沒(méi)有指定返回值時(shí)都有一個(gè)默認(rèn)的返回值None。如果函數(shù)沒(méi)有return語(yǔ)句,則默認(rèn)返回None.None表示空的意思。
但函數(shù)中不一定必須要存在return,return存在與否取決于其功能和用途。
# 設(shè)定一個(gè)基礎(chǔ)圖形 def line(): print('-' * 10) # 利用循環(huán)創(chuàng)建出新的圖像 def total(num): i = 0 while i < num: line() i += 1 # 不加return最后結(jié)果會(huì)有一個(gè)None # return 1 print(total(5)) ''' 運(yùn)行結(jié)果: ---------- ---------- ---------- ---------- ---------- None '''
四.return 1或0或-1的區(qū)別(int值)
- 當(dāng)return返回一個(gè)int值時(shí),具體含義取決于具體的上下文和用途。
- 表示計(jì)算結(jié)果時(shí),如果函數(shù)的目的是進(jìn)行某種計(jì)算并返回一個(gè)整數(shù)值作為結(jié)果,那么
return
語(yǔ)句將這個(gè)計(jì)算結(jié)果返回給調(diào)用者。
# 兩數(shù)相加 def add(a, b): sum = a + b return sum result = add(3, 4) # 此時(shí)運(yùn)行結(jié)果是7
- 當(dāng)其表示狀態(tài)時(shí)
return 1 | return 0 | return -1 | |
正常運(yùn)行狀態(tài)下 | return 1 通常用于表示程序或函數(shù)在執(zhí)行過(guò)程中遇到了問(wèn)題,未能正常完成其任務(wù)。在主函數(shù)中,這可能意味著程序異常終止。 | 在大多數(shù)編程語(yǔ)言中,return 0 用于表示程序或函數(shù)已成功完成其任務(wù),并正常退出。這是約定俗成的慣例,也是操作系統(tǒng)和其他程序用來(lái)判斷程序是否正常結(jié)束的標(biāo)志。 | return -1 通常用于表示函數(shù)遇到了嚴(yán)重錯(cuò)誤或無(wú)法繼續(xù)執(zhí)行的情況 |
在布爾值(bool)中 | 表示布爾值真 | 表示布爾值假 | 一般不直接對(duì)應(yīng)布爾值的True或False,表示執(zhí)行錯(cuò)誤 |
在特殊情況下(不重要) | return 1 也可以表示某種特定條件的達(dá)成或成功,盡管這種情況較少見(jiàn) | 都表示正常 | 在一些復(fù)雜的系統(tǒng)或庫(kù)中,負(fù)返回值可能用于指示不同類(lèi)型的錯(cuò)誤或異常 |
五.返回值返回的類(lèi)型
一般情況下,可以返回任意類(lèi)型。
- 當(dāng)返回單個(gè)值時(shí),返回的就是他原本的類(lèi)型
def return_type(): # return 1, 2 return [1, 2] print(return_type()) print(type(return_type())) ''' 運(yùn)行結(jié)果(其他類(lèi)型同理): [1, 2] <class 'list'> '''
- 當(dāng)返回多個(gè)值時(shí),默認(rèn)返回元組(tuple)
def return_type(): return 1, 2 print(return_type()) print(type(return_type())) ''' 運(yùn)行結(jié)果: (1, 2) <class 'tuple'> '''
六.函數(shù)作為參數(shù)傳遞
def test1(): return 50 def test2(num): print(num) # 保存函數(shù)test1的返回值 result = test1() # 將函數(shù)返回值所在變量作為參數(shù)傳遞到test2中 test2(result) # 打印結(jié)果:50
七.print()和return的區(qū)別
(雖然他們可能沒(méi)有太大關(guān)系)
print() | return | |
功能用途 | 主要用于在控制臺(tái)輸出信息 | 將處理結(jié)果返回給調(diào)用者 |
返回值特性 | 沒(méi)有返回值的概念 | 可以返回函數(shù)計(jì)算后的任意類(lèi)型數(shù)據(jù),默認(rèn)為None |
終止情況 | 一般情況下不會(huì)終止 | 在函數(shù)中,一般情況下return下代碼不執(zhí)行 |
應(yīng)用場(chǎng)景 | 適用于需要即時(shí)展示程序執(zhí)行進(jìn)度或中間結(jié)果的場(chǎng)景,如調(diào)試等 | 多用于需要在計(jì)算后繼續(xù)處理結(jié)果的場(chǎng)景,如數(shù)據(jù)計(jì)算、條件判斷等 |
- 一般情況下,return和print也是可以混合使用的。但建議使用第二種方法。
# 第一種 def return_p1(): return print('hhh') return_p1() print('--------') # 第二種 def return_p2(): return 'ooo' print(return_p2()) ''' 運(yùn)行結(jié)果: hhh -------- ooo '''
例題:
錯(cuò)誤原因:沒(méi)有返回值,print和return認(rèn)識(shí)不明確
八.特殊情況
在類(lèi)方法中,__str__中的return后只能是字符串類(lèi)型
用return print(' ')也會(huì)報(bào)錯(cuò),如果要打印字符串可以用return f' '
總結(jié)
到此這篇關(guān)于關(guān)于python返回值return的文章就介紹到這了,更多相關(guān)python返回值return內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Tkinter中button按鈕未按卻主動(dòng)執(zhí)行command函數(shù)的問(wèn)題
這篇文章主要介紹了解決Tkinter中button按鈕未按卻主動(dòng)執(zhí)行command函數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python獲取服務(wù)器信息的最簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Python獲取服務(wù)器信息的最簡(jiǎn)單實(shí)現(xiàn)方法,涉及Python中urllib2庫(kù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Python實(shí)現(xiàn)的文本簡(jiǎn)單可逆加密算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的文本簡(jiǎn)單可逆加密算法,結(jié)合完整實(shí)例形式分析了Python自定義加密與解密算法具體實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-05-05Python實(shí)現(xiàn)老照片修復(fù)之上色小技巧
你會(huì)黑白照片上色嗎,今天小編帶你用python來(lái)給黑白照片上個(gè)色,這里我們借助百度AI開(kāi)放平臺(tái)的“黑白圖像上色”接口,僅需二十行代碼即可實(shí)現(xiàn),感興趣的朋友來(lái)看看吧2021-10-10基于keras中的回調(diào)函數(shù)用法說(shuō)明
這篇文章主要介紹了基于keras中的回調(diào)函數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python調(diào)用騰訊API進(jìn)行人像動(dòng)漫化效果實(shí)例
最近上網(wǎng)的時(shí)候看到了一個(gè)有趣的東西,叫做人物動(dòng)漫化,嘗試著用python實(shí)現(xiàn)了,所以下面這篇文章主要給大家介紹了關(guān)于Python調(diào)用騰訊API進(jìn)行人像動(dòng)漫化效果的相關(guān)資料,需要的朋友可以參考下2023-06-06tensorflow: variable的值與variable.read_value()的值區(qū)別詳解
今天小編就為大家分享一篇tensorflow: variable的值與variable.read_value()的值區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07用Python簡(jiǎn)單實(shí)現(xiàn)Http服務(wù)端
這篇文章主要為大家介紹了使用Python簡(jiǎn)單實(shí)現(xiàn)Http服務(wù)端示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07