我正在用Python编程。我有这样一个while循环
b=time.clock()
while time.clock()-b<3 :
input("input")
我希望在3秒后结束while循环,即使用户还没有输入任何内容!我怎么能这样做?
编辑:如果我的data=s.recv(1024)
其中s是套接字,而不是input("input")
,会是什么?
这种问题有一般解决方案吗?
Edit2:我正在使用Python 3。
答案 0 :(得分:3)
input
阻止用户输入,因此您必须实现一些异步方式来触发超时事件(或触发用户输入)
幸运的是,this SO answer似乎只有这个东西!
编辑:如果您不使用Python 3,则应该使用raw_input
代替input
答案 1 :(得分:0)
你不能,使用input
。 input
阻止用户输入内容;当它被阻止时,你没有任何程序控制正在发生的事情。有一些方法可以自己触发信号(如here,如其他地方所建议的那样),但这有点令人费解。
通常,您希望在这种情况下使用raw_input
,尽管它遇到了同样的问题。如果您正在编写一个与用户交互的严肃程序,那么您将需要使用真正的GUI框架,将允许您以更直接的方式执行这些操作。< / p>