python定时用户输入
在一定的时间内,我需要用户输入一些特定的句子 例如,用户应在10秒内写出以下句子:python定时用户输入,python,python-3.x,input,Python,Python 3.x,Input,在一定的时间内,我需要用户输入一些特定的句子 例如,用户应在10秒内写出以下句子: Hello! World. 然而,若用户不能完成完整的句子,那个么无论写什么都应该被接受。所以,如果一个人只能写Hello!Wo则应将其存储 问题-如果用户在时间之前没有按回车/回车键,则不会保存任何内容。如何克服这个问题?这是我的方法- import time from threading import Thread print('Hello! World') user = None def check(
Hello! World.
然而,若用户不能完成完整的句子,那个么无论写什么都应该被接受。所以,如果一个人只能写Hello!Wo
则应将其存储
问题-如果用户在时间之前没有按回车/回车键,则不会保存任何内容。如何克服这个问题?这是我的方法-
import time
from threading import Thread
print('Hello! World')
user = None
def check():
time.sleep(10)
if user != None:
return
print ("Too Slow")
Thread(target = check).start()
user = input("Enter above string: \n")
我会采取不同的方法(不需要线程); 我会在打印“hello world”之前保存当前dat结束时间,然后比较当前时间
from datetime import datetime, timedelta
start = datetime.now()
print("Hello world!")
if input() == "Hellow world!" and datetime.now()<=start + timedelta(seconds = 10):
#the user got it right
else:
#the user was either too slow or got it wrong
从datetime导入datetime,timedelta
start=datetime.now()
打印(“你好,世界!”)
如果input()=“Hellow world!”和datetime.now()要做到这一点,您必须使用自己的事件处理程序创建自己的窗口,该事件处理程序将在用户按下键盘上的键时进行检测。wxPython中的标准input()方法甚至定制的textControl小部件都很酷,但总是等到用户按下Enter键。因此,不幸的是,我认为您必须使用一些GUI库(例如wxpython,它提供了您的操作系统的本机外观和一系列有用的小部件),并自行处理事件。如果您希望实现一个超时而不是GUI,那么可以在一个线程中运行用户输入,并立即使用计时器启动第二个线程。然后编写一个处理程序,在计时器完成时终止inputThread,反之亦然。
希望我能帮上忙:)检查一下:尝试使用键盘列表我需要在指定的确切时间停止用户,否则你的方法可能会有用。然后你就不能真正使用input()或者尝试使用pygame来做这类事情;)有用的链接;)