我试图通过创建一个函数来使它一直运行直到它达到0。我以为可以循环使用它,但是我认为它最终跳过了else的第一部分。
“(int(time)-int(1))”,然后重复它在-1之后得到的第二个数字。
我要执行的操作:采用整个功能并运行直到达到0。
它的作用:花费时间-1,并一直打印直到达到最大递归深度。
import time as tm
def Timer(time):
if time == '0':
print("done")
tm.sleep(3)
else:
print(int(time) - int(1))
Timer(time)
Timer(time)
答案 0 :(得分:2)
假设时间不是全局时间,则需要将时间作为输入传递到函数中,并进行相应的修改,以便最终达到time == '0'
的递归基本情况。目前,您只是一遍又一遍地调用Timer()
,而无需更改时间,因此您将继续递归调用Timer()
,直到达到指示的最大递归深度为止(打印更改的时间实际上并没有改变时间)。
import time as tm
def Timer(time):
if time == '0':
print("done")
else:
print(int(time) - 1)
tm.sleep(1)
time = str(int(time) - 1)
Timer(time)
Timer('4')
答案 1 :(得分:2)
尝试
def Timer(time):
for i in range(time,0, -1):
print(time -1)
print("done")
Timer(10)
如果您真的想要一个计时器,请查看导入时间并使用time.sleep(10)
from time import time
def Timer(time):
for i in range(time,0, -1):
time.sleep(1)
print(time - 1)
print("done")
Timer(10)
答案 2 :(得分:0)
我对您的代码做了一些小的改动。虽然非常相似,但由于似乎没有必要,所以我修复了丢失的参数并删除了所有变量类型的转换。这是我创建的(当然,您可能必须调整函数调用并可能删除我的输入):
import time as tm
def Timer(time):
while (time>0):
tm.sleep(1)
time -= 1
print(time)
print("done")
tm.sleep(3)
time=int(input('Choose your time value: '))
Timer(time)