Heim > Backend-Entwicklung > Python-Tutorial > Wie stellt man gültige Benutzereingaben in Python sicher?

Wie stellt man gültige Benutzereingaben in Python sicher?

Barbara Streisand
Freigeben: 2025-01-02 17:01:40
Original
301 Leute haben es durchsucht

How to Ensure Valid User Input in Python?

Bitten Sie um gültige Benutzereingaben bis zum Empfang

Wenn Sie Benutzereingaben anfordern, ist es wichtig, ungültige Antworten ordnungsgemäß zu behandeln, anstatt abzustürzen oder falsche Werte zu akzeptieren . Die folgenden Techniken stellen sicher, dass gültige Eingaben erhalten werden:

Try/Except für außergewöhnliche Eingaben

Verwenden Sie try/Exception, um bestimmte Eingaben abzufangen, die nicht analysiert werden können. Zum Beispiel:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    break
Nach dem Login kopieren

Benutzerdefinierte Validierung für zusätzliche Regeln

Manchmal erfüllt eine Eingabe, die analysiert werden kann, bestimmte Kriterien möglicherweise immer noch nicht. Sie können eine benutzerdefinierte Validierungslogik hinzufügen, um bestimmte Werte abzulehnen:

while True:
    data = input("Enter a positive number: ")
    if int(data) < 0:
        print("Invalid input. Please enter a positive number.")
        continue
    break
Nach dem Login kopieren

Ausnahmebehandlung und benutzerdefinierte Validierung kombinieren

Kombinieren Sie beide Techniken, um sowohl ungültige Parsing- als auch benutzerdefinierte Validierungsregeln zu verarbeiten :

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    if age < 0:
        print("Invalid age. Please enter a positive number.")
        continue
    break
Nach dem Login kopieren

Einkapselung in einem Funktion

Um die benutzerdefinierte Eingabevalidierungslogik wiederzuverwenden, kapseln Sie sie in einer Funktion:

def get_positive_age():
    while True:
        try:
            age = int(input("Please enter your age: "))
        except ValueError:
            print("Sorry, that's not a valid age.")
            continue
        if age < 0:
            print("Invalid age. Please enter a positive number.")
            continue
        return age
Nach dem Login kopieren

Erweiterte Eingabebereinigung

Das ist möglich Erstellen Sie eine allgemeinere Eingabefunktion, um verschiedene Validierungsszenarien zu verarbeiten:

def get_valid_input(prompt, type_=None, min_=None, max_=None, range_=None):
    while True:
        try:
            value = type_(input(prompt))
        except ValueError:
            print(f"Invalid input type. Expected {type_.__name__}.")
            continue
        if max_ is not None and value > max_:
            print(f"Value must be less than or equal to {max_}.")
            continue
        if min_ is not None and value < min_:
            print(f"Value must be greater than or equal to {min_}.")
            continue
        if range_ is not None and value not in range_:
            template = "Value must be {}."
            if len(range_) == 1:
                print(template.format(*range_))
            else:
                expected = " or ".join((
                    ", ".join(str(x) for x in range_[:-1]),
                    str(range_[-1])
                ))
                print(template.format(expected))
        else:
            return value
Nach dem Login kopieren

Mit dieser Funktion können Sie Folgendes tun Geben Sie den Datentyp, den Bereich und andere Einschränkungen für die Benutzereingabe an.

Das obige ist der detaillierte Inhalt vonWie stellt man gültige Benutzereingaben in Python sicher?. 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