具有時間限制回應的使用者鍵盤輸入
提示使用者輸入時,設定超時以防止程式執行通常很有幫助免於無限期地等待響應。但是,嘗試使用線上論壇中建議的方法(例如引用的方法(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!")
以上是如何在 Python 中實現時間受限的使用者鍵盤輸入而不出錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!