我的目标是:制作一个以问候语开头的小程序(基于文本),打印出自上次事件以来已经过了多长时间的计时器,然后打印出该事件的计时器。 我已经使用这段代码开始尝试找出一个计时器,但我的第一个问题是计时器在每一秒都在新的一行上重复。我怎样才能让它停止?此外,这个计时器似乎落后于时钟上的实际秒数。
import os
import time
s=0
m=0
while s<=60:
os.system('cls')
print (m, 'Minutes', s, 'Seconds')
time.sleep(1)
s+=1
if s==60:
m+=1
s=0
最佳答案
我会选择这样的东西:
import time
import sys
time_start = time.time()
seconds = 0
minutes = 0
while True:
try:
sys.stdout.write("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds))
sys.stdout.flush()
time.sleep(1)
seconds = int(time.time() - time_start) - minutes * 60
if seconds >= 60:
minutes += 1
seconds = 0
except KeyboardInterrupt, e:
break
这里我依赖于实际时间模块,而不仅仅是 sleep 增量器,因为 sleep 不会恰好是 1 秒。
此外,您可能可以使用 print
而不是 sys.stdout.write
,但您几乎肯定需要 sys.stdout.flush
仍然。
喜欢:
print ("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds)),
注意结尾的逗号,这样就不会打印新行。
关于python - 如何在 Python 中制作一个定时器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802554/