首頁 > 後端開發 > Python教學 > 如何使用「raw_input()」在Python中實現限時使用者輸入?

如何使用「raw_input()」在Python中實現限時使用者輸入?

Patricia Arquette
發布: 2024-11-19 16:35:02
原創
828 人瀏覽過

How to Implement Time-Limited User Input in Python Using `raw_input()`?

使用原始輸入進行限時使用者輸入

在 Python 中,raw_input() 函數可用於提示使用者輸入。然而,在某些情況下,您可能希望限制使用者輸入的等待時間,以避免無限期地拖延程式。

使用線程定時器的解決方案

對於跨平台和特定於 Windows 的解決方案,您可以利用線程模組中的 threading.Timer。導入必要的模組:

import thread
import threading
登入後複製

定義一個名為 raw_input_with_timeout 的函數:

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
登入後複製

此函數列印提示,啟動計時器,並使用 input 提示使用者輸入。如果使用者輸入的時間超過指定的逾時時間,計時器將中斷主線程,導致引發 KeyboardInterrupt 例外。定時器被取消,以防止進一步中斷。

如果輸入超時,將傳回 None。如果使用者在超時之前輸入,它將傳回輸入的字串。

注意:

  • 用於區分超時和使用者啟動的中斷(例如,如果使用者按下Ctrl C),您可以在全域變數中儲存中斷是否由逾時引起的指示,或使用try/ except 來處理KeyboardInterrupt 異常並相應地設定一個標誌。
  • 此方法不適用於 Windows 上的「普通檔案」(如 stdin)。對於特定於 Windows 的實現,請考慮在檢查逾時時循環輪詢 msvcrt.kbhit 和 msvcrt.getche。

以上是如何使用「raw_input()」在Python中實現限時使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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