我尝试制作的循环无法正确循环

The loop i tried to make won't loop correctly

我试图通过制作一个函数来制作一个计时器,它应该一直持续 运行ning 直到它达到 0。我以为我可以让它循环,但我认为它最终跳过了第一部分其他
"(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)

假设时间不是全局的,您需要将时间作为输入传递给您的函数并相应地对其进行修改,以便最终达到 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')

试试这个

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)

我对您的代码做了一些小改动。虽然它非常相似,但我修复了丢失的参数并删除了所有变量类型转换,因为它似乎没有必要。这是我创建的(当然,您可能需要调整函数调用并可能删除我的输入):

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)