Heim >Backend-Entwicklung >Python-Tutorial >Wie lese und verwende ich numerische Eingaben in Python richtig?

Wie lese und verwende ich numerische Eingaben in Python richtig?

Susan Sarandon
Susan SarandonOriginal
2024-12-24 14:29:10763Durchsuche

How Do I Properly Read and Use Numerical Input in Python?

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!

Stellungnahme:
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