Eingaben als Zahlen in Python lesen
Pythons Eingabefunktion gibt Daten als Zeichenfolge zurück, im Gegensatz zu anderen Programmiersprachen, die Benutzereingaben automatisch als Zeichenfolge interpretieren Nummer. Dies kann zu Fehlern bei der Durchführung mathematischer Operationen auf Benutzereingaben führen. Unten sehen Sie ein Beispiel, das das Problem veranschaulicht:
play = True while play: x = input("Enter a number: ") # Input is taken as a string y = input("Enter a number: ") print(x + y) # Concatenates the strings instead of adding them print(x - y) # Raises a TypeError due to string subtraction print(x * y) # Multiplies the string representations as integers print(x / y) # Raises a ZeroDivisionError if y is an empty string print(x % y) # Raises a TypeError due to string modulus if input("Play again? ") == "no": # Again, input is taken as a string play = False
Lösung:
Um dieses Problem zu beheben, können Sie die Eingabezeichenfolgen mithilfe von int() explizit in Ganzzahlen konvertieren. Funktion:
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
Dadurch wird sichergestellt, dass die Eingabedaten als numerischer Wert behandelt und mathematische Operationen ausgeführt werden korrekt.
Optional: Flexible Eingabekonvertierung
Python ermöglicht es Ihnen, die Basis der Eingabezahl anzugeben. Dies kann nützlich sein, wenn Sie Zahlen in einem nichtdezimalen Basissystem lesen müssen. Der zweite Parameter der int()-Funktion gibt die Basis an:
x = int(input("Enter a number (base 8): "), 8) # Reads input as an octal number y = int(input("Enter a number (base 16): "), 16) # Reads input as a hexadecimal number
Wenn die Eingabedaten für eine angegebene Basis ungültig sind, löst die int()-Funktion einen ValueError aus.
Hinweis:
In Python 2.x gibt es zwei Eingabefunktionen: raw_input() und input(). raw_input() verhält sich wie input() in Python 3.x und gibt die Eingabe als String zurück. Aus Konsistenzgründen wird empfohlen, input() sowohl in Python 2.x als auch in Python 3.x zu verwenden.
Das obige ist der detaillierte Inhalt vonWie lese und verwende ich numerische Eingaben in Python richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!