python寫計時器出現問題 如何修復計時器問題

2021-10-18 01:15:07 字數 1372 閱讀 7903

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()內的無休止的迴圈。

大概是:

這將列印當前時間

^$這與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」

python計時器 python 計時器

import sysclassshowtime qwidget def init self super init self.istimestart false 標記時間是否開始計時 self.setwindowtitle qlable 顯示計時時間 self.lable time val qlabe...

python計時器單位 python計時器類

import time as t class mytimer def init self self.unit 年 月 日 時 分 秒 self.prompt 未開始計時 self.lasted self.start 0 self.stop 0 def str self return self.pro...

用js計時器寫倒計時

寫倒計時的思路 1,設定要到的時間。2,獲取當前時間。3,計算時,分,秒,毫秒的時間差,4,用計時器把整個倒計時函式包裝起來 1,倒計時內容部分 var timego newdate 2019 6 30 12 00 00 倒計時要到的時間 var timenow newdate 獲取當前時間 var...