python - 如何在 Python 中制作一个定时器程序

标签 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

最佳答案

我会选择这样的东西:

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/

相关文章:

python - 将刻度线置于热图行的中心

python - 如何使用 BPF 重新过滤 scapy 数据包?

python - 使用 numpy delete 和 enumerate 时索引错误

python - 如何使用 Pandas 将 Series 连接到 DataFrame 上?

java - Ejb 计时器抛出 javax.ejb.ConcurrentAccessTimeoutException : Unable to get write lock on

javascript - 我正在设置一个计时器,但我做错了。所以请给我更好的方法来做到这一点

c# - 如何在 C# 中制作只显示秒和毫秒的秒表?

python - 如何打印字典的键,在值列表中搜索值

timer - 哪个 CPU 增加 SMP 中的 jiffies?

android - 尝试调用虚方法