我如何计时用户输入输入所花的时间?

时间:2018-10-19 03:22:34

标签: python timeit

我正在制作游戏,所以我需要能够找到用户输入输入所花费的时间。然后,我想将输入存储在变量中。我已经尝试使用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 :(得分:2)

使用public class LoginInfo extends BaseObservable { private String username = ""; private String password = ""; @Bindable public String getUsername() { return username; } public void setUsername(String username) { /*Listener will repeatedly call setPassword() every time it is notified, avoid infinite loops*/ if (!this.username.equals(username)) { Log.i("Username", username); this.username = username; notifyPropertyChanged(BR.username); } } @Bindable public String getPassword() { return password; } public void setPassword(String password) { /*Listener will repeatedly call setPassword() every time it is notified, avoid infinite loops*/ if (!this.password.equals(password)) { Log.i("Password", password); this.password = password; notifyPropertyChanged(BR.password); } } } ,您可以使用以下方法检查表达式花费的时间:

timeit

请注意,没有括号,并加上参数time_to_respond = timeit.timeit(get_input_from_user, number=1) ,以确保仅被调用一次。

例如,这可能返回:

number=1

但是,由于您希望同时访问变量和响应时间,因此建议您使用>>> time_to_respond 1.66159096399997 模块,按照以下步骤做一些事情:

time