如何在Python中制作计时器程序

Eri*_*ken 6 python timer

这是我的目标:制作一个以问候语开头的小程序(基于文本),打印出自上次事件以来已经过多长时间的计时器,然后打印事件的计时器.我已经使用这段代码开始尝试找出一个计时器,但我的第一个问题是计时器在每一个新的秒钟上不断重复新的一行.我如何让它停下来?此外,这个计时器似乎落后于时钟上的实际秒数.

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
Run Code Online (Sandbox Code Playgroud)

sbe*_*rry 7

我会用这样的东西:

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
Run Code Online (Sandbox Code Playgroud)

在这里,我依靠实际的时间模块,而不仅仅是睡眠增量,因为睡眠不会恰好是1秒.

此外,你可以使用print而不是sys.stdout.write,但你几乎肯定还需要sys.stdout.flush.

喜欢:

print ("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds)),
Run Code Online (Sandbox Code Playgroud)

请注意尾随逗号,以便不打印新行.