Как в питоне реализовать таймер обратного отчета ???
import time
def timer(t: int):
for r in reversed(range(1, t + 1)):
print(r, 'sec')
time.sleep(1)
a = timer(10)
if a == None:
print('Program is over')
elif a == 5:
print('34r34')
Ответ
import threading
import random
import time
def timer(t: int, result: list):
def wait(c0=result.pop()):
for r in reversed(range(1, t+1)):
result.append(random.choice(range(4)))
print('timer', r, result)
if result[-1] == c0:
break
else:
time.sleep(1)
thr = threading.Thread(target=wait)
thr.start()
while thr.is_alive():
yield result
if __name__ == '__main__':
stop = 3
result_ = [stop]
# ждать 10 сек, пока в result_ не появится 3
for a in timer(10, result_):
print('ожидание', stop, a)
# time.sleep(1)
if 2 in result_:
print('34r34')
print('Program is over', result_)
out:
timer 10 [1]
ожидание 3 [1]
ожидание 3 [1]
timer 9 [1, 2]
ожидание 3 [1, 2]
timer 8 [1, 2, 1]
ожидание 3 [1, 2, 1]
timer 7 [1, 2, 1, 3]
34r34
Program is over [1, 2, 1, 3]
Комментариев нет:
Отправить комментарий