在 Python 中,raw_input() 函数会提示用户输入,但它会无限期地等待,直到用户输入内容。对于需要对用户输入施加时间限制的情况,可以使用 threading 模块来解决。
根据用户的建议,raw_input_with_timeout() 函数采用两个参数: 提示(显示的文本给用户)和超时(以秒为单位的时间限制)。它启动一个计时器线程,该线程会在指定的超时后中断主线程。
这是代码的改进版本:
import threading def raw_input_with_timeout(prompt, timeout=30.0): print(prompt, end=' ') timer = threading.Timer(timeout, thread.interrupt_main) astring = None try: timer.start() astring = input(prompt) except KeyboardInterrupt: pass timer.cancel() return astring
如果用户在超时之前输入输入,则输入以字符串形式返回。如果达到超时,则返回 None 表示用户没有在指定时间范围内提供输入。
请注意,此解决方案假设用户输入速度不是很慢。如果您需要考虑打字速度慢的问题,您可以在每次输入字符后重新计算 finishat(超时发生的时间)。
以上是如何在Python中实现用户输入超时?的详细内容。更多信息请关注PHP中文网其他相关文章!