首页 >后端开发 >Python教程 >如何在 Python 中实现时间受限的用户键盘输入而不出错?

如何在 Python 中实现时间受限的用户键盘输入而不出错?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-27 07:14:08465浏览

How Can I Implement Time-Constrained User Keyboard Input in Python Without Errors?

具有时间限制响应的用户键盘输入

提示用户输入时,设置超时以防止程序执行通常很有帮助免于无限期地等待响应。但是,尝试使用在线论坛中建议的方法(例如引用的方法(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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn