Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich zeitlich begrenzte Benutzertastatureingaben in Python fehlerfrei implementieren?

Wie kann ich zeitlich begrenzte Benutzertastatureingaben in Python fehlerfrei implementieren?

Mary-Kate Olsen
Freigeben: 2024-12-27 07:14:08
Original
461 Leute haben es durchsucht

How Can I Implement Time-Constrained User Keyboard Input in Python Without Errors?

Benutzertastatureingabe mit zeitlich begrenzten Antworten

Wenn Sie einen Benutzer zur Eingabe auffordern, ist es oft hilfreich, eine Zeitüberschreitung festzulegen, um das Programm zu verhindern vom ewigen Warten auf eine Antwort. Allerdings können Versuche, diese Funktion mithilfe von Ansätzen zu implementieren, die in Online-Foren vorgeschlagen werden, wie beispielsweise dem, auf den verwiesen wird (http://mail.python.org/pipermail/python-list/2006-January/533215.html), zu Problemen führen.

Konkret führen Versuche, eine Zeitüberschreitung mithilfe von sys.input.readline oder timer.sleep zu implementieren, häufig zu Folgendem Fehler:

<type 'exceptions.TypeError'>: [raw_]input expected at most 1 arguments, got 2
Nach dem Login kopieren

Dieser Fehler zeigt an, dass die Eingabefunktion höchstens ein Argument erwartet, aber zwei Argumente an sie übergeben werden.

Eine erweiterte Lösung

Um dieses Problem zu beheben, besteht ein robusterer Ansatz in der Verwendung des Auswahlmoduls, das eine tragbarere und effizientere Möglichkeit bietet, Eingaben mit Zeitüberschreitungen zu verarbeiten. Der folgende Code demonstriert diesen Ansatz:

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!")
Nach dem Login kopieren

Diese Lösung verwendet die Funktion „select.select“, um die Eingabe von der Standardeingabe mit einem angegebenen Zeitlimit zu überwachen. Wenn innerhalb des Timeouts eine Eingabe eingeht, wird diese verarbeitet. Andernfalls gibt das Programm eine Meldung aus, die angibt, dass keine Eingabe empfangen wurde.

Durch die Verwendung des Auswahlmoduls vermeidet dieser Ansatz den TypeError, der bei früheren Versuchen aufgetreten ist, und bietet eine zuverlässigere Möglichkeit, zeitlich begrenzte Benutzereingaben in Python zu implementieren .

Das obige ist der detaillierte Inhalt vonWie kann ich zeitlich begrenzte Benutzertastatureingaben in Python fehlerfrei implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage