So konvertieren Sie String in Python in Int

Lösungsvorschau: Konvertieren Sie eine numerische Zeichenfolge mitint(). Für nicht-dezimale Eingaben (binär, hexadezimal) übergeben Sie eine Basis. Fügen Sie Fehlerbehandlung oder Vorvalidierung hinzu, um ungültige Eingaben zu behandeln.

Methode 1: Konvertieren Sie eine dezimale numerische Zeichenfolge mit int()

Schritt 1:Speichern oder lesen Sie die numerische Zeichenfolge.

s = "42"

Schritt 2:Konvertieren Sie die Zeichenfolge in eine Ganzzahl.

n = int(s)

Schritt 3:Verwenden Sie die Ganzzahl in Berechnungen oder drucken Sie sie aus.

print(n * 2)  # 84

Tipp:int()ignoriert führende/nachgestellte Leerzeichen und unterstützt optionale Zeichen wie"+17"oder" -3 ".

Methode 2: Strings in anderen Basen analysieren (binär, hexadezimal, oktal)

Schritt 1:Identifizieren Sie die Basis Ihrer Zeichenfolge (2 für binär, 8 für oktal, 16 für hexadezimal).

Schritt 2:Übergeben Sie die Basis als zweites Argument anint().

# Binary
b = "1010"
n = int(b, 2)   # 10

# Hexadecimal
h = "1A"
m = int(h, 16)  # 26

Hinweis: Sie können jede Basis zwischen 2 und 36 verwenden.

Methode 3: Ungültige Eingaben sicher behandeln (ausprobieren/ausnehmen oder vorab prüfen)

Schritt 1:Schließen Sie die Konvertierung in einen Try/Except-Block ein, um fehlerhafte Eingaben abzufangen.

s = "abc"
try:
    n = int(s)
    print(n)
except ValueError:
    print("Invalid input: cannot convert to integer")

Schritt 2:Optional vorab validieren mitstr.isdigit()für reine Zifferneingaben.

s = "12345"
if s.isdigit():
    print(int(s))
else:
    print("Not a pure digit string")

Überprüfen:str.isdigit()akzeptiert keine Schilder ("-5") oder Dezimalzahlen ("12.3"). Verwenden Sie für diese Fälle den Try/Except-Pfad.

Methode 4: Konvertieren Sie Float-ähnliche Zeichenfolgen in int

Schritt 1:Konvertieren Sie den String in einen Float und dann in einen Int.

s = "88.8"
n = int(float(s))  # 88 (truncates toward zero)

Hinweis: Dadurch wird der Bruchteil abgeschnitten. Wenn Sie eine Rundung benötigen, konvertieren Sie infloatund bewerbenround()vorint().

Methode 5: Konvertieren Sie eine Liste numerischer Zeichenfolgen

Schritt 1:Ordnen Sie jedes Element zuintum eine neue Liste zu erstellen.

xs = ["1", "2", "3"]
nums = list(map(int, xs))  # [1, 2, 3]

Schritt 2:Alternativ können Sie auch ein Listenverständnis verwenden.

nums = [int(x) for x in xs]

Tipp: Wenn Elemente möglicherweise ungültig sind, schließen Sie die Konvertierung in eine Funktion ein, die try/exclusive verwendet, und wenden Sie sie mit anmapoder ein Verständnis.

Häufige Fallstricke

  • Übergeben von nicht numerischem Text (z. B."hello") erhöhtValueError. Verwenden Sie try/exclusive, um Ihr Programm am Laufen zu halten.
  • Analysieren einer Float-Zeichenfolge (z. B."12.5") mitint()scheitert; konvertieren zufloatZuerst, wenn die Kürzung akzeptabel ist.
  • Das Parsen basisspezifischer Zeichenfolgen ohne die richtige Basis führt zu falschen Ergebnissen oder Fehlern. Übergeben Sie immer die Basis, wenn die Zeichenfolge nicht dezimal ist.

Mitint()Für die direkte Analyse, ein Basisargument für nicht-dezimale Zeichenfolgen und eine einfache Validierung können Sie Eingaben sicher konvertieren und Ihren Code robust halten.

Mehr lesen:So kehren Sie einen String in Python um

Related Posts