So konvertieren Sie String in Int in Python (Safe Casting & Bases)

Erfahren Sie, wie Sie in Python mithilfe der Funktion int() einen String in eine Ganzzahl konvertieren. Behandeln Sie Fehler sicher und konvertieren Sie Zahlen aus Binär-, Oktal- oder Hexadezimalwerten.

Probieren Sie diese Lösung im Editor aus

Übersicht

Das Konvertieren einer Zeichenfolgendarstellung einer Zahl in eine tatsächliche Ganzzahl ist eine häufige Aufgabe bei der Anwendungsentwicklung. Dieser Prozess, der oft als Casting bezeichnet wird, ist wichtig, wenn es um die Verarbeitung roher Benutzereingaben, das Lesen von Konfigurationsdateien, das Parsen von Argumenten von Befehlszeilenschnittstellen oder das Scrapen von Daten aus dem Web geht. Da es sich bei Python um eine stark typisierte Sprache handelt, können Sie keine mathematischen Operationen an Zeichenfolgedarstellungen von Zahlen durchführen, ohne diese vorher umzuwandeln.

Der in Python integrierte „int()“-Konstruktor ist das primäre Werkzeug für diese Konvertierung. In der einfachsten Form gibt die Übergabe einer numerischen Zeichenfolge (wie „42“) an „int()“ ihr ganzzahliges Äquivalent zurück. Die Übergabe einer nicht numerischen Zeichenfolge (wie „Hallo““) oder einer Zeichenfolge, die eine Gleitkommazahl darstellt (wie „3.14““), löst jedoch einen „ValueError“ aus. Um robuste Anwendungen zu schreiben, ist es üblich, Umwandlungsvorgänge in einen „Try-Exception“-Block zu packen, um unerwartete Eingaben ordnungsgemäß zu verarbeiten.

Über die standardmäßige Base-10-Konvertierung hinaus akzeptiert die Funktion „int()“ ein optionales „base“-Argument. Dadurch können Sie ganz einfach Zeichenfolgen analysieren, die Zahlen in verschiedenen Zahlensystemen darstellen, z. B. binär (Basis 2), oktal (Basis 8) oder hexadezimal (Basis 16). Beispielsweise analysiert „int("1010", 2)“ die Binärzeichenfolge korrekt in die Dezimalzahl „10“, was es zu einem vielseitigen Werkzeug für die mathematische Programmierung auf niedrigerem Niveau oder für spezielle Zwecke macht.

Code- und Ausführungsausgabe

Dieses Skript demonstriert die Konvertierung einer Zeichenfolge in eine Ganzzahl, die Behandlung von Ausnahmen und die Konvertierung verschiedener Basisdarstellungen.

# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")

# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
    result = int(invalid_str)
except ValueError:
    print(f"Could not convert '{invalid_str}' to an integer.")

# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))
Terminal-Ausgabe
Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255

Schrittweise Umsetzung

  • Übergeben Sie die numerische Zeichenfolge an die integrierte Funktion int().
  • Binden Sie Ihre Umwandlungsvorgänge in try...except ValueError-Blöcke ein, um ungültige Formate zu verarbeiten.
  • Geben Sie ein zweites Argument an (z. B. Basis=16), um in anderen Basen geschriebene Zeichenfolgenwerte zu konvertieren.

Häufig gestellte Fragen

Wie kann ich einen Float-String wie „12.34“ in eine Ganzzahl umwandeln?

Sie müssen es zuerst in einen Float und dann in einen int konvertieren: int(float("12.34")). Der direkte Aufruf von int("12.34") löst einen ValueError aus.

Wie überprüfe ich, ob eine Zeichenfolge sicher in ein int konvertiert werden kann?

Sie können die String-Methode .isdigit() verwenden, beachten Sie jedoch, dass sie für negative Vorzeichen oder Leerzeichen „False“ zurückgibt. Ein Try-Except-Block ist der robusteste Weg.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.