具有时间限制响应的用户键盘输入
提示用户输入时,设置超时以防止程序执行通常很有帮助免于无限期地等待响应。但是,尝试使用在线论坛中建议的方法(例如引用的方法(http://mail.python.org/pipermail/python-list/2006-January/533215.html))来实现此功能可能会遇到问题。 🎜>
具体来说,尝试使用 sys.input.readline 或timer.sleep 实现超时通常会导致以下结果错误:<type 'exceptions.TypeError'>: [raw_]input expected at most 1 arguments, got 2此错误表示输入函数最多需要一个参数,但正在向其传递两个参数。
增强的解决方案
为了解决这个问题,一种更强大的方法是使用 select 模块,它提供了一种更便携、更有效的方法来处理超时输入。以下代码演示了这种方法:import sys, select print("You have 10 seconds to respond!") # Set a timeout of 10 seconds timeout = 10 # Create a list of input sources to monitor (in this case, only standard input) inputs = [sys.stdin] # Use select.select to monitor for input within the specified timeout readable, _, _ = select.select(inputs, [], [], timeout) # Check if any input was received within the timeout if readable: # Read and process the input input_str = sys.stdin.readline().strip() print("You said:", input_str) else: # No input was received within the timeout print("You said nothing!")此解决方案使用 select.select 函数来监视来自标准输入的输入并指定超时。如果在超时时间内收到输入,则会对其进行处理。否则,程序会打印一条消息,指示未收到输入。通过使用 select 模块,这种方法避免了之前尝试中遇到的 TypeError,并提供了一种更可靠的方法来在 Python 中实现时间受限的用户输入.
以上是如何在 Python 中实现时间受限的用户键盘输入而不出错?的详细内容。更多信息请关注PHP中文网其他相关文章!