虽然循环了一段时间

时间:2011-02-03 16:53:47

标签: python time python-3.x while-loop clock

我正在用Python编程。我有这样一个while循环

b=time.clock()
while time.clock()-b<3 :
    input("input")

我希望在3秒后结束while循环,即使用户还没有输入任何内容!我怎么能这样做?

编辑:如果我的data=s.recv(1024)其中s是套接字,而不是input("input"),会是什么?

这种问题有一般解决方案吗?

Edit2:我正在使用Python 3。

2 个答案:

答案 0 :(得分:3)

input阻止用户输入,因此您必须实现一些异步方式来触发超时事件(或触发用户输入)

幸运的是,this SO answer似乎只有这个东西!

编辑:如果您不使用Python 3,则应该使用raw_input代替input

答案 1 :(得分:0)

你不能,使用inputinput阻止用户输入内容;当它被阻止时,你没有任何程序控制正在发生的事情。有一些方法可以自己触发信号(如here,如其他地方所建议的那样),但这有点令人费解。

通常,您希望在这种情况下使用raw_input,尽管它遇到了同样的问题。如果您正在编写一个与用户交互的严肃程序,那么您将需要使用真正的GUI框架,允许您以更直接的方式执行这些操作。< / p>