python写计时器出现问题_如何修复计时器问题

这篇博客介绍了如何在Python中创建一个实时计时器,通过使用datetime和time模块来实现。代码展示了两种方法,一种是简单的打印当前时间,另一种则通过精确控制循环来提高时间精度。博客还解释了datetime的strftime方法以及如何计算运行时间差。
摘要由CSDN通过智能技术生成

import time

import datetime

class timer():

def start(self):

while 1:

x = datetime.datetime.utcnow()

print(x.strftime('%M.%S.%f'))

time.sleep(0.1)

worker = timer()

worker.start()

这就是工作。

请注意,Python的精确度是非常有限的,如果您想获得一个更完美的计时器,您必须存储最后一个已知的毫秒(1/1000秒),并创建一个while 1循环来等待正确的时间,然后释放并继续start()内的无休止的循环。

大概是:

这将打印当前时间

^{pr2}$

这与Python所能达到的精确度差不多。

对于解释部分:

x = datetime.datetime.utcnow()将把当前时间存储在一个名为x的变量中。在python中,变量是带有函数的“对象”。。而这个特殊的变量是一个名为strftime的函数。

strftime接受一些参数,并将当前时间转换为您希望能够读取的字符串,在本例中,我们将创建%M分钟,然后再创建{}秒,最后是一个点,后跟%f,即毫秒。

当然,它是基于您当前的时间,如果您需要计算某个东西已经运行了多长时间,您可以将time.time() - self.time添加到datetime.datetime中,而不是{},这样它就可以计算出某个东西运行了多长时间。

这是个秒表import time

import datetime

def getTime():

return int(round(time.time() * 1000))

class timer():

def __init__(self):

self.time = datetime.datetime.today()

def start(self):

lastRun = getTime()

while 1:

while getTime() - lastRun < 100:

pass

lastRun = getTime()

x = datetime.datetime.today() - self.time

print(x)

worker = timer()

worker.start()

代码几乎完全相同,唯一的区别是使用了存储“启动时间”的self.time,我们将用startup time减去{},因此操作将是:存储启动

对于每个循环,获取“现在”

现在启动=运行时间

打印结果,自动格式化为“0:00:01.800000”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值