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

