Таймер на Python, с возможностью его обнуления
Как реализовать таймер, который можно было бы сбросить до нулевых значений. Т.е. у нас есть код, который начинает отсчет таймера, и цикл с условиями, в случае которых они бы сбрасывались. Пример программного кода ниже:
timer1 = time.monotonic()
timer2 = time.monotonic()
timer3 = time.monotonic()
while True:
LEFTANDPRESSBUTTON(0x45, 12)
time.sleep(8)
if timer1 > 30:
LEFTANDPRESSBUTTON(0x45, 12)
print('Клавиша E', timer1)
timer1 = time.monotonic()
else:
break
if timer2 > 60:
LEFTANDPRESSBUTTON(0x45, 12)
print('Клавиша e', timer2)
timer2 = time.monotonic()
else:
break
if timer3 > 120:
LEFTANDPRESSBUTTON(0x45, 12)
print('Клавиша У', timer3)
timer3 = time.monotonic()
else:
break
Возможно логика программного кода не совсем верная, но это пока то что мне пришло в голову.
Ответы (1 шт):
Автор решения: Arty
→ Ссылка
Можно реализовать простейший класс Timer для подобных целей, пример реализации и использования ниже:
class Timer:
import time
def __init__(self):
self.start()
def start(self):
self.t = Timer.time.time()
def __call__(self):
return Timer.time.time() - self.t
# Usage
import time
t0, t1, t2 = Timer(), Timer(), Timer()
while True:
time.sleep(0.01) # Some work
if t0() >= 0.5:
print('A', end = '', flush = True)
t0.start()
if t1() >= 0.75:
print('B', end = '', flush = True)
t1.start()
if t2() >= 5:
break
Вывод:
ABABAABABAABABA