Heim >Backend-Entwicklung >Python-Tutorial >Wie implementiert man zeitlich begrenzte Benutzereingaben in Python mit „raw_input()'?
Zeitlich begrenzte Benutzereingabe mit Roheingabe
In Python kann die Funktion raw_input() verwendet werden, um den Benutzer zur Eingabe aufzufordern. Es kann jedoch Szenarien geben, in denen Sie die Wartezeit auf Benutzereingaben begrenzen möchten, um zu vermeiden, dass das Programm auf unbestimmte Zeit angehalten wird.
Lösung mit Threading-Timer
Für Cross- Plattform- und Windows-spezifische Lösungen können Sie threading.Timer aus dem Threading-Modul verwenden. Importieren Sie die erforderlichen Module:
import thread import threading
Definieren Sie eine Funktion namens 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
Diese Funktion druckt die Eingabeaufforderung, startet einen Timer und fordert Benutzereingaben mithilfe von Eingaben auf. Wenn der Benutzer länger als das angegebene Zeitlimit für die Eingabe benötigt, unterbricht der Timer den Hauptthread, wodurch eine KeyboardInterrupt-Ausnahme ausgelöst wird. Der Timer wird abgebrochen, um weitere Unterbrechungen zu verhindern.
Wenn der Eingang das Zeitlimit überschreitet, wird „Keine“ zurückgegeben. Wenn der Benutzer vor dem Timeout eine Eingabe macht, wird die eingegebene Zeichenfolge zurückgegeben.
Hinweis:
Das obige ist der detaillierte Inhalt vonWie implementiert man zeitlich begrenzte Benutzereingaben in Python mit „raw_input()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!