Python: Integer in einen String umwandeln

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 14.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Python int to String: So wandelst du einen Integer in einen String um!

    Manchmal ist es nötig, in Programmen Texte auszugeben, welche unter anderem auch Zahlenwerte enthalten.
    Die beiden häufigsten Methoden hierfür sind die Funktion str sowie die format-Methode, über die jedes String-Objekt verfügt.
    Wir zeigen dir die gängigsten Möglichkeiten um in Python einen Integer in einen String umzuwandeln.

    Int zu String konvertieren

    Die einfachste Methode um dies zu erreichen, ist die Zahl mit der Funktion str umzuwandeln.
    Mit der eingebauten Funktion type kannst du den Typen eines Objektes anschließend ermitteln.

    zahl = 7
    print("Typ:", type(zahl), "Wert:", zahl)
    
    zahl = str(zahl)
    print("Typ:", type(zahl), "Wert:", zahl)
    > Typ: <class 'int'> Wert: 7
    > Typ: <class 'str'> Wert: 7

    Meist wird, um eine Zahl in einen String einzubinden, eine der vier folgenden Herangehensweisen gewählt.

    zahl = 7
    quadrat = zahl * zahl
    
    # einfache String-Verkettung
    "Das Quadrat von " + str(zahl) + " ist " + str(quadrat)
    
    # Formatieren "Old Style"
    "Das Quadrat von %d ist %d" % (zahl, quadrat)
    
    # Formatieren "New Style"
    "Das Quadrat von {} ist {}".format(zahl, quadrat)
    
    # f-strings, seit Python 3
    f"Das Quadrat von {zahl} ist {quadrat}"
    > Das Quadrat von 7 ist 49
    > Das Quadrat von 7 ist 49
    > Das Quadrat von 7 ist 49
    > Das Quadrat von 7 ist 49

    Eigene Klassen zu String casten

    Diese Funktionen können nicht nur für Konvertierungen von Integern zu Strings verwendet werden, sondern wir können auch eigene Klassen schreiben, die str und format unterstützen.
    Das folgende Beispiel gibt für beide Funktionen das gleiche Ergebnis aus.

    class BeispielKlasse(object):
        def __str__(self):
            return 'BeispielKlasse'
    
    beispiel = "Verwendete Klasse: " + str(BeispielKlasse())
    print(beispiel)
    
    beispiel = f"Verwendete Klasse: {BeispielKlasse()}"
    print(beispiel)
    > Verwendete Klasse: BeispielKlasse
    > Verwendete Klasse: BeispielKlasse

    Die magic methods __format__&__str__

    Wenn du nun zusätzlich zu __str__ noch __format__ implementierst, kannst du die Ausgabe von str und format unabhängig voneinander steuern.

    class BeispielKlasse(object):
        def __str__(self):
            return '__str__Beispiel'
    
        def __format__(self, idk):
            return '__format__Beispiel'
    
    beispiel = "Verwendete Klasse: " + str(BeispielKlasse())
    print(beispiel)
    
    beispiel = "Verwendete Klasse: %s" % (BeispielKlasse())
    print(beispiel)
    
    beispiel = "Verwendete Klasse: {}".format(BeispielKlasse())
    print(beispiel)
    
    beispiel = f"Verwendete Klasse: {BeispielKlasse()}"
    print(beispiel)
    > Verwendete Klasse: __str__Beispiel
    > Verwendete Klasse: __str__Beispiel
    > Verwendete Klasse: __format__Beispiel
    > Verwendete Klasse: __format__Beispiel

    Fazit

    Integer in String zu konvertieren ist einfach und beinahe genau so einfach ist es, das gleiche Verhalten in eigene Klassen zu implementieren. Mit den “magic methods” __str__ und __format__ kannst du bestimmen, wie die Objekte deiner Klassen durch str() und format() dargestellt werden.

    Hast du noch Fragen? Hat dir dieser Beitrag geholfen? Lass es mich in den Kommentaren wissen.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig