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
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
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
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
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
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!