函数返回后,计时器脚本不会恢复到起点?

Timer script wont revert back to the starting point when the function has been returned?

在这个 Python 脚本 (Visual studio) 中,我试图制作一个计时秒数的计时器,在 60 秒标记处重置,增加一分钟并再次计时。然而,它并没有停在 60,而是继续,61、62、63 等。这只发生在第一分钟完成后,不会发生在第一分钟。

def ClockTimer():
import time
number = 0
minutes = 0
while True:
    
    time.sleep(1)
    print(number + 1, "seconds")
    number += 1  

    if number == 60:
        
        print("When hits 60")
        number = 0 
        minutes += 1
        while True:
            print( minutes, "minutes", number + 1, "seconds",)
            number += 1
            time.sleep(1)
        return ClockTimer
print(ClockTimer())

我在录音软件gyazo上有一些例子。 Hitting the first minuteHitting second minute, onwards.

如果有人能帮助我,我将不胜感激。问题可能很简单的原因是因为我刚开始python,我认为这将是一个很好的开始项目。提前谢谢你。

您的问题是第二个 while 循环,当您达到 60 时,您将永远停留在这个内部循环中:

while True:
    print( minutes, "minutes", number + 1, "seconds",)
    number += 1
    time.sleep(1)

我不明白你为什么要 return 函数本身并打印它,你已经在函数中打印了结果。这是一个稍微修改过的正确运行的版本,我让它在达到 10 分钟后 return 并注释掉睡眠,这样我就不必等待 10 分钟才能完成 运行 :)

def ClockTimer():
    import time
    number = 0
    minutes = 0
    while minutes < 10:    
        #time.sleep(1)
        if minutes > 0:
            print( minutes, "minutes", number + 1, "seconds",)
        else:
            print(number + 1, "seconds")
        number += 1          
        if number == 60:          
            print("When hits 60")
            number = 0 
            minutes += 1

ClockTimer()