Python遞歸函數(shù)返回值為None問(wèn)題及解決
Python遞歸函數(shù)返回值為None
在使用 Python 開發(fā)的過(guò)程中,避免不了會(huì)用到遞歸函數(shù)。但遞歸函數(shù)的返回值有時(shí)會(huì)出現(xiàn)意想不到的情況。
舉一個(gè)例子
>>> def fun(i): ... i += 1 ... if i < 5: ... fun(i) ... else: ... return i ... >>> r = fun(0) >>> print(r)
比如上面這段代碼,乍一看沒(méi)什么問(wèn)題,但返回值并不是我們期望的 5,而是 None。
>>> print(r) None
解決這個(gè)問(wèn)題也簡(jiǎn)單
就是在執(zhí)行遞歸調(diào)用的時(shí)候,加上 return 語(yǔ)句。
修改之后的代碼
如下:
>>> def fun(i): ... i += 1 ... if i < 5: ... return fun(i) ... else: ... return i ... >>> r = fun(0) >>> print(r) 5
現(xiàn)在輸出的結(jié)果就符合我們的預(yù)期了。
最后補(bǔ)充一句,如果想要了解這背后深層的原理,可以看看函數(shù)調(diào)用棧相關(guān)的資料,這里就不過(guò)多介紹了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?Pytorch學(xué)習(xí)之圖像檢索實(shí)踐
隨著電子商務(wù)和在線網(wǎng)站的出現(xiàn),圖像檢索在我們的日常生活中的應(yīng)用一直在增加。圖像檢索的基本本質(zhì)是根據(jù)查詢圖像的特征從集合或數(shù)據(jù)庫(kù)中查找圖像。本文將利用Pytorch實(shí)現(xiàn)圖像檢索,需要的可以參考一下2022-04-04
windows下cx_Freeze生成Python可執(zhí)行程序的詳細(xì)步驟
這篇文章主要介紹了windows下cx_Freeze生成Python可執(zhí)行程序的詳細(xì)步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法
這篇文章主要介紹了Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法,實(shí)例分析了Django框架操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Python實(shí)現(xiàn)爬取多頁(yè)數(shù)據(jù)并合并為Excel的實(shí)用指南
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python實(shí)現(xiàn)爬取多頁(yè)數(shù)據(jù)并合并為Excel,文中的示例代碼講解詳細(xì),感興趣的小伙伴要跟隨小編一起學(xué)習(xí)一下2025-11-11
利用Tensorflow構(gòu)建和訓(xùn)練自己的CNN來(lái)做簡(jiǎn)單的驗(yàn)證碼識(shí)別方式
今天小編就為大家分享一篇利用Tensorflow構(gòu)建和訓(xùn)練自己的CNN來(lái)做簡(jiǎn)單的驗(yàn)證碼識(shí)別方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python基礎(chǔ)之元組與文件知識(shí)總結(jié)
今天帶大家復(fù)習(xí)一下Python基礎(chǔ)知識(shí),文中詳細(xì)介紹了Python元祖與文件,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
Python實(shí)現(xiàn)微信高效自動(dòng)化操作
在如今數(shù)字化時(shí)代,人們對(duì)于效率的追求越來(lái)越強(qiáng)烈,而PyAutoGUI和Pyperclip作為Python中的兩個(gè)強(qiáng)大庫(kù),為我們實(shí)現(xiàn)自動(dòng)化操作提供了便利,下面我們就來(lái)看看如何利用這兩個(gè)庫(kù)實(shí)現(xiàn)微信自動(dòng)化操作吧2023-10-10
pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼
pandas.concat用于合并DataFrame或Series,本文主要介紹了pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2025-06-06
Python區(qū)塊鏈范圍結(jié)論及Genesis Block的添加教程
這篇文章主要為大家介紹了Python區(qū)塊鏈范圍結(jié)論及Genesis Block的添加,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

