首頁 > 後端開發 > Python教學 > 如何在 Python 中實現時間受限的使用者鍵盤輸入而不出錯?

如何在 Python 中實現時間受限的使用者鍵盤輸入而不出錯?

Mary-Kate Olsen
發布: 2024-12-27 07:14:08
原創
459 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板