Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python定时用户输入_Python_Python 3.x_Input - Fatal编程技术网

python定时用户输入

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(

在一定的时间内,我需要用户输入一些特定的句子

例如,用户应在10秒内写出以下句子:

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来做这类事情;)有用的链接;)