Как определить время, необходимое пользователю для ввода ввода? - PullRequest
0 голосов
/ 19 октября 2018

Я создаю игру, и мне нужно уметь определить, сколько времени требуется пользователю для ввода ввода.Затем я хотел бы сохранить входные данные в переменной.Я уже пытался использовать модуль timeit:

import timeit
def get_input_from_user():
    variable = input("Prompt: ")
time_to_respond = timeit.timeit(get_input_from_user())

Затем я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\<censored>\AppData\Local\Programs\Python\Python37-32\lib\timeit.py", line 232, in timeit
    return Timer(stmt, setup, timer, globals).timeit(number)
  File "C:\Users\<censored>\AppData\Local\Programs\Python\Python37-32\lib\timeit.py", line 128, in __init__
    raise ValueError("stmt is neither a string nor callable")
ValueError: stmt is neither a string nor callable

Мне кажется, что ошибка исходит от модуля timeit,но поправьте меня, если я ошибаюсь, пожалуйста.

Кроме того, мне нужно иметь возможность получить доступ как к вводу пользователя, так и ко времени, которое потребовалось пользователю для последующего ответа в коде.

1 Ответ

0 голосов
/ 19 октября 2018

Используя timeit, вы можете проверить, сколько времени занимает выражение, используя:

time_to_respond = timeit.timeit(get_input_from_user, number=1)

Обратите внимание, без скобок и аргумента number=1, чтобы убедиться, что оно вызывается только один раз.

Например, это может вернуть:

>>> time_to_respond
1.66159096399997

Но так как вы хотите получить доступ как к переменной, так и ко времени ответа, я бы предложил вместо этого сделать что-то в этом духе, используя time модуль:

import time
def get_input_from_user():
    s = time.time()
    variable = input("Prompt: ")
    e = time.time()
    return e-s, variable

time_to_respond, variable = get_input_from_user()

>>> time_to_respond
2.4452149868011475
>>> variable
'hello!'
...