Как засечь таймер и после его истечения сделать автоматическое действие? Питон
Хочу написать код который измеряет скорость печати на клавиатуре, для этого у меня есть текст который придётся пользователю печатать как можно быстрее, надо засечь таймер в 10 секунд и после их истечения надо чтобы нажался автоматически enter. Так пользователь введёт весь текст который он успел напечатать в input
Ответы (2 шт):
Автор решения: Narnik Gamarnik
→ Ссылка
from time import sleep
def func():
result = input()
sleep(10)
return result
Автор решения: Andy Pavlov
→ Ссылка
Могу предложить вариант с "костылем".
Функция input() требует обязательного нажатия enter для финализации ввода. Можно через threading.Timer создать поток, который через 10 секунд будет просить нажать enter. При этом считать будем скорость не за 10 секунд, а по факту за промежуток времени определяемый с помощью time.time().
import threading
import time
waiting = 10 # секунды
t1 = threading.Timer(waiting, print, args=['Время вышло, нажмите Enter'])
begin = time.time()
t1.start()
text = input('Введите текст:\n')
t1.cancel()
time_count = time.time() - begin
print(f'Скорость ввода {len(text)/time_count} символов в секунду')