Die Eingabe von Benutzereingaben und deren Konvertierung in Integer ist eine gängige Aufgabe in der Python-Programmierung. Dieser Prozess erfordert sorgfältige Fehlerbehandlung, um sicherzustellen, dass Ihr Programm nicht abstürzt, wenn es mit unerwarteten Eingaben konfrontiert wird. Dieser Artikel führt Sie durch Best Practices für das Lesen von Integer-Eingaben in Python, sowohl für Python 3 als auch für Python 2.
Inhaltsverzeichnis
- Integer-Eingabe in Python 3 lesen
- Robuste Fehlerbehandlung in Python 3
- Integer-Eingabe in Python 2 lesen
- Robuste Fehlerbehandlung in Python 2
- Best Practices und erweiterte Techniken
- Häufig gestellte Fragen
Integer-Eingabe in Python 3 lesen
Python 3 verwendet die Funktion input()
, um Benutzereingaben zu lesen. Diese Funktion gibt immer eine Zeichenkette zurück, daher müssen Sie sie explizit mit int()
in einen Integer konvertieren. Nicht-Integer-Eingaben verursachen jedoch einen Fehler. Der beste Ansatz ist die Verwendung eines try-except
-Blocks, um potenzielle ValueError
-Ausnahmen zu behandeln.
while True:
try:
user_input = input("Geben Sie eine ganze Zahl ein: ")
number = int(user_input)
break # Schleife beenden, wenn die Eingabe gültig ist
except ValueError:
print("Ungültige Eingabe. Bitte geben Sie eine ganze Zahl ein.")
print("Sie haben eingegeben:", number)
Robuste Fehlerbehandlung in Python 3
Die while True
-Schleife stellt sicher, dass das Programm den Benutzer so lange weiter auffordert, bis eine gültige ganze Zahl eingegeben wird. Eine ausgefeiltere Fehlerbehandlung könnte spezifische Fehlermeldungen für verschiedene Arten ungültiger Eingaben oder Eingabevalidierung mithilfe regulärer Ausdrücke für komplexere Szenarien umfassen.
Integer-Eingabe in Python 2 lesen
In Python 2 ist raw_input()
die bevorzugte Methode zum Lesen von Benutzereingaben als Zeichenkette. Vermeiden Sie die Verwendung von input()
in Python 2, da es versucht, die Eingabe auszuwerten, was zu Sicherheitslücken und unerwartetem Verhalten führen kann.
while True:
try:
user_input = raw_input("Geben Sie eine ganze Zahl ein: ")
number = int(user_input)
break
except ValueError:
print "Ungültige Eingabe. Bitte geben Sie eine ganze Zahl ein."
print "Sie haben eingegeben:", number
Robuste Fehlerbehandlung in Python 2
Die Fehlerbehandlung in Python 2 ähnelt Python 3 und verwendet den try-except
-Block. Die gleiche Schleifen Technik wie oben gezeigt stellt sicher, dass das Programm bei ungültiger Eingabe nicht abstürzt.
Best Practices und erweiterte Techniken
Validieren Sie immer Benutzereingaben. Gehen Sie nicht davon aus, dass der Benutzer den erwarteten Datentyp angibt. Die Verwendung von try-except
-Blöcken ist ein grundlegender Bestandteil einer robusten Fehlerbehandlung. Erwägen Sie, je nach Bedarf Ihrer Anwendung eine spezifischere Ausnahmebehandlung (z. B. die Behandlung von KeyboardInterrupt
) hinzuzufügen. Für komplexe Validierungsszenarien können reguläre Ausdrücke ein leistungsstarkes Werkzeug sein.
Häufig gestellte Fragen
- F: Was passiert, wenn der Benutzer eine Gleitkommazahl eingibt?
A: Die Funktionint()
schneidet den Dezimalteil ab und konvertiert die Gleitkommazahl in eine ganze Zahl (z. B.int(3.14)
gibt3
zurück). Um Gleitkommazahlen zu verarbeiten, verwenden Siefloat()
. - F: Wie kann ich andere Arten von Fehlern behandeln?
A: Fügen Sie weitereexcept
-Blöcke hinzu, um bestimmte Ausnahmen wieKeyboardInterrupt
oderEOFError
zu behandeln. - F: Gibt es prägnantere Validierungsmethoden?
A: Währendtry-except
klar ist, bieten reguläre Ausdrücke prägnantere Lösungen für komplexe Validierungsregeln.