Du liest:
Python: Integer in einen String umwandeln

Python: Integer in einen String umwandeln

von Patrick
14.04.2020
Jetzt Python programmieren lernen

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.

1. 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

2. 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

2.1 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

3. 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.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren