函数返回后,计时器脚本不会恢复到起点?
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 minute。
Hitting 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()
在这个 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 minute。 Hitting 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()