代码达到了递归的最高限制 报错了怎么办----已解决
def count(h,m,s):top2.destroy()
if h + m + s == 0:
print("时间到了")
else:
print(h, m, s)
time.sleep(1)
s -= 1
if s == -1 and (m > 0 or h > 0):
m -= 1
s = 59
if m == -1 and h > 0:
h -= 1
m = 59
count(h, m, s)
这是一个倒计时但是只能定时十几分钟
我看网上有人说可以调整最大递归限制但感觉不够稳妥
后来改成迭代就行了
{:10_256:}
def count(h,m,s):
top2.destroy()
while h + m + s != 0:
print(h, m, s)
time.sleep(1)
s -= 1
if s == -1 and m + h > 0:
m -= 1
s = 59
if m == -1 and h > 0:
h -= 1
m = 59
print("时间到了") 你已经找到了解决问题的方法,将递归改成了迭代,这是一个很好的选择!
递归有一个限制,即递归的层数不能太深。这是因为每次函数调用都会将一些信息保存在内存中,当递归层数过多时,内存消耗会很大,导致程序崩溃。
你可以通过修改默认的最大递归限制来解决问题,但这是一个相对不稳妥的方法,因为如果你的倒计时时间非常长,甚至超过了修改后的限制,仍然会报错。
通过迭代的方法实现倒计时是一个更好的选择,因为迭代不会有递归层级的限制。你已经成功地将代码改写为迭代方式,可以运行较长时间的倒计时了!
如果你有其他编程问题,我会很愿意帮助你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]