生入力による時間制限のあるユーザー入力
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 を返します。ユーザーがタイムアウト前に入力を行った場合、入力された文字列が返されます。
注:
以上が「raw_input()」を使用して、Python で時間制限のあるユーザー入力を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。