在使用 Python 開發的過程中,避免不了會用到遞歸函數。但遞歸函數的返回值有時會出現意想不到的情況。
專注于為中小企業提供成都網站制作、網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業長寧免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了近1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
下面來舉一個例子:
>>> def fun(i):
... i += 1
... if i < 5:
... fun(i)
... else:
... return i
...
>>> r = fun(0)
>>> print(r)
比如上面這段代碼,乍一看沒什么問題,但返回值并不是我們期望的 5,而是 None
。
>>> print(r)
None
要解決這個問題也簡單,就是在執行遞歸調用的時候,加上 return
語句。
修改之后的代碼如下:
>>> def fun(i):
... i += 1
... if i < 5:
... return fun(i)
... else:
... return i
...
>>> r = fun(0)
>>> print(r)
5
現在輸出的結果就符合我們的預期了。
最后補充一句,如果想要了解這背后深層的原理,可以看看函數調用棧相關的資料,這里就不過多介紹了。
本文就到這里了,如果覺得有用的話歡迎點贊,轉發和關注,謝謝。
推薦閱讀:
網頁標題:Python 遞歸函數返回值為 None 的解決辦法
文章網址:http://m.kartarina.com/article0/dsojooo.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、微信小程序、網站維護、全網營銷推廣、建站公司、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯