所以基本上我正在尝试用Python进行反应测试。实施并不重要,但我将在下面留下:
def reaction():
print("3",end="\r")
time.sleep(1)
print("2",end="\r")
time.sleep(1)
print("1",end="\r")
time.sleep(1)
print("---------------------")
time.sleep(random.randint(1,4))
reaction_start=int(round(time.time() * 1000))
input("PRESS!")
reaction_end=int(round(time.time() * 1000))
return (reaction_end - reaction_start)
所以基本上,它在显示“PRESS!”之前给出倒计时,然后它记录用户按Enter键所需的时间。我计划多次重复此测试,以便可以平均用户的表现。
但是,你可以通过在“按下”之前按“Enter”来欺骗这个。标志出现了。 “enter”命令似乎堆叠并在下次程序要求用户输入时执行。实际上,这似乎不仅适用于此函数,而且适用于Python中与输入相关的所有内容。
也就是说,如果在运行Python时进行任何输入,那么当Windows控制台接下来要求输入时,这些输入会插入下一个可能的点。所以,如果我运行Python脚本,然后在python脚本运行时,我按“向上”和“输入”,程序将立即按下并在脚本运行完毕后输入并重新运行最后一个命令(即重复功能)。如何以这种方式阻止命令堆叠?