我正在嘗試製作一個小腳本,並且這樣做的有效方式涉及調用其內部的函數。但是,這會給出消息「RuntimeError:獲取對象的str時超出最大遞歸深度」。防止超過最大遞歸深度
我試圖讓程序在它到達之前退出,但似乎沒有做這項工作。我想知道是否有任何方法可以在一定數量的運行後停止程序,所以這個錯誤不會發生。這是我試圖解決這個問題:
import sys
n = 0
def cycle(b,n):
total = 0
for i in str(n):
for y in i:
total+=int(y)**b
n+=1
print(total)
if n == 10:
sys.exit()
else:
cycle(b,total)
cycle(2,562)
謝謝。
*「同時獲得一個物體的STR遞歸深度超過」表明錯誤ISN」 t在你顯示的代碼中。請提供[最小示例](http://stackoverflow.com/help/mcve)。 – jonrsharpe
爲什麼函數不返回任何內容?還要注意函數中的'n'與你設置爲零的'n'不一樣。 – holdenweb
爲什麼你在頂端分配'n = 0',然後不做任何事情? 'i'已經是一個單獨的字符時,'我在y'中有什麼意義? – TigerhawkT3