Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich sicherstellen, dass mein Programm ungültige Benutzereingaben ordnungsgemäß verarbeitet?

Wie kann ich sicherstellen, dass mein Programm ungültige Benutzereingaben ordnungsgemäß verarbeitet?

Linda Hamilton
Freigeben: 2024-12-24 14:50:11
Original
745 Leute haben es durchsucht

How Can I Ensure My Program Handles Invalid User Input Gracefully?

Nach Benutzereingaben fragen, bis eine gültige Antwort bereitgestellt wird

Problem

Die Eingabevalidierung ist entscheidend, um eine genaue Datenerfassung in Programmen sicherzustellen, die auf den Benutzer angewiesen sind Interaktion. Allerdings kann die Validierung von Benutzereingaben eine Herausforderung darstellen, wenn es um unerwartete oder ungültige Daten geht. Dies kann zu Programmabstürzen oder falschen Ergebnissen führen.

Lösung 1: Schleife mit Ausnahmebehandlung

Der gängigste Ansatz ist die Verwendung einer While-Schleife mit Try- und Except-Blöcken, um beim Parsen ausgelöste Ausnahmen zu behandeln Eingang. Zum Beispiel:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Invalid input. Please enter a valid age:")
        continue
    else:
        break
Nach dem Login kopieren

Lösung 2: Schleife mit benutzerdefinierter Validierung

Wenn Sie eine spezifischere Validierung benötigen, die über die Möglichkeiten von Python hinausgeht, können Sie benutzerdefinierte Logik implementieren:

while True:
    data = input("Please enter a loud message (must be all caps): ")
    if not data.isupper():
        print("Input must be all caps. Please enter a loud message:")
        continue
    else:
        break
Nach dem Login kopieren

Lösung 3: Kombination von Ausnahmebehandlung und benutzerdefinierter Validierung

Die Kombination beider Lösungen bietet Flexibilität für die Verwaltung verschiedener Validierungen Anforderungen:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Invalid input. Please enter a valid age:")
        continue

    if age < 0:
        print("Age cannot be negative. Please enter a valid age:")
        continue
    else:
        break
Nach dem Login kopieren

Lösung 4: Wiederverwendbare Eingabefunktion

Wenn Sie mehrere Eingaben konsistent validieren müssen, sollten Sie die Erstellung einer wiederverwendbaren Funktion in Betracht ziehen:

def get_valid_input(prompt, type_=int, min_=None, max_=None, range_=None):
    while True:
        try:
            value = type_(input(prompt))
        except ValueError:
            print("Invalid input. Please enter a valid value:")
            continue

        if min_ is not None and value < min_:
            print("Value must be greater than or equal to {}. Please enter a valid value:".format(min_))
            continue
        elif max_ is not None and value > max_:
            print("Value must be less than or equal to {}. Please enter a valid value:".format(max_))
            continue
        elif range_ is not None and value not in range_:
            print("Value must be in the range {}. Please enter a valid value:".format(range_))
            continue
        else:
            return value
Nach dem Login kopieren

Vermeidung häufiger Fallstricke

  • Redundante Eingabeanweisungen: Verwenden Sie while True und Schleifen anstelle von Mehrfacheingaben Aufrufe.
  • Rekursion zur Eingabevalidierung verwenden: Dieser Ansatz kann zu einem Stapelüberlauf führen. Halten Sie sich an Schleifen.

Fazit

Durch die Implementierung dieser Techniken können Sie sicherstellen, dass Ihr Programm Benutzereingaben ordnungsgemäß verarbeitet, Abstürze verhindert und genaue Daten erfasst.

Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass mein Programm ungültige Benutzereingaben ordnungsgemäß verarbeitet?. 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