【问题标题】:Hot python input loop热python输入循环
【发布时间】:2011-03-04 06:28:06
【问题描述】:

我想要类似下面的伪代码:

while input is not None and timer < 5:
    input = getChar()
    timer = time.time() - start

if timer >= 5:
    print "took too long"
else:
    print input

无论如何要在没有线程的情况下做到这一点?我想要一个输入法,它返回自上次调用以来输入的任何内容,如果没有输入任何内容,则返回 None (null)。

【问题讨论】:

  • 如果您使用非阻塞 IO 消息,您最终会陷入热循环——一个使用所有可用处理能力来获取输入的循环。如果时间过长,最好使用threading.Timer 触发失败条件。
  • 您可以time.sleep 一小段时间(0.1 秒左右,如果您需要低延迟可能更短)以避免热循环,或者至少冷却它。
  • 想要热循环。这就是问题所在。我可以用time.sleep 或其他什么来减慢速度。
  • 请编辑您的问题标题以反映您问题的实际内容。 “简单的 Python 输入问题”几乎没有说明问题是什么。标题应该更具描述性。它将帮助人们找到并回答您的问题。
  • 相关“如何设置输入时间限制”stackoverflow.com/questions/2933399/…

标签: python input loops timer


【解决方案1】:

在 *nix 上,您需要 selectsys.stdin。在 Windows 上,您需要 msvcrt.kbhit()msvcrt.getch()

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 2014-06-07
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2012-10-13
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多