f-Strings in Python: Strings elegant und sicher formatieren

f-Strings sind die modernste und lesbarste Art, in Python Werte in Text einzubauen. Du lernst, wie du Ausdrücke einbettest, Zahlen formatierst und sauber ausrichtest.

Teilen

Früher oder später willst du in Python einen Wert in einen Text einbauen: einen Namen begrüßen, einen Preis anzeigen oder eine Zahl sauber runden. Es gibt mehrere Wege dafür, aber seit Python 3.6 gibt es einen klaren Favoriten: den f-String. Er ist kurz, gut lesbar und mächtiger, als viele denken. In diesem Beitrag lernst du, wie f-Strings funktionieren, wie du Zahlen formatierst und wie du damit sogar Tabellen ausrichtest.

Was ist ein f-String?

Ein f-String ist ein String, dem ein f vorangestellt ist. Innerhalb geschweifter Klammern {} kannst du direkt Variablen oder Ausdrücke einsetzen – Python wertet sie aus und fügt das Ergebnis als Text ein. Das nennt man String Interpolation.

name = "Anna"
alter = 29

print(f"Hallo {name}, du bist {alter} Jahre alt.")
# Hallo Anna, du bist 29 Jahre alt.

Zum Vergleich: Früher hättest du "Hallo " + name + ", du bist " + str(alter) geschrieben oder .format() genutzt. Der f-String ist kürzer und du siehst sofort, was am Ende herauskommt.

Ausdrücke direkt einbetten

In den Klammern steht nicht nur ein Variablenname – du kannst dort beliebige Python-Ausdrücke schreiben. Rechnungen, Methodenaufrufe, Zugriffe auf Listen oder Dictionaries: alles ist erlaubt.

preis = 19.99
menge = 3
print(f"Gesamt: {preis * menge} Euro")
# Gesamt: 59.97 Euro

produkte = ["Apfel", "Birne", "Kirsche"]
print(f"Es gibt {len(produkte)} Produkte.")
print(f"Das erste heißt {produkte[0].upper()}.")
# Es gibt 3 Produkte.
# Das erste heißt APFEL.

Halte die Ausdrücke trotzdem einfach. Wenn eine Berechnung kompliziert wird, ist es lesbarer, das Ergebnis vorher in eine Variable zu schreiben und diese dann im f-String zu verwenden.

Zahlen formatieren mit dem Doppelpunkt

Nach einem Doppelpunkt kannst du innerhalb der Klammern einen Format-Spezifikator angeben. Damit steuerst du, wie ein Wert dargestellt wird – zum Beispiel die Anzahl der Nachkommastellen. Das ist besonders bei Geldbeträgen und Prozentwerten praktisch.

pi = 3.14159265
print(f"Pi gerundet: {pi:.2f}")     # Pi gerundet: 3.14

betrag = 1234567.891
print(f"Betrag: {betrag:,.2f}")     # Betrag: 1,234,567.89

anteil = 0.2537
print(f"Anteil: {anteil:.1%}")      # Anteil: 25.4%

Kurz erklärt: .2f bedeutet „Fließkommazahl mit zwei Nachkommastellen", das Komma vor dem Punkt fügt einen Tausendertrenner ein, und % multipliziert automatisch mit 100 und hängt ein Prozentzeichen an. Wichtig zu wissen: Das Runden ist nur optisch – der eigentliche Wert der Variablen bleibt unverändert.

Ausrichten und Breite festlegen

Format-Spezifikatoren können auch die Breite und Ausrichtung steuern. Mit < richtest du linksbündig aus, mit > rechtsbündig und mit ^ zentriert. Die Zahl dahinter gibt die Mindestbreite in Zeichen an. So baust du im Handumdrehen ordentliche Spalten.

produkte = {"Apfel": 0.99, "Brot": 2.49, "Milch": 1.19}

for name, preis in produkte.items():
    print(f"{name:<10}{preis:>6.2f} EUR")

# Apfel       0.99 EUR
# Brot        2.49 EUR
# Milch       1.19 EUR

Hier reserviert {name:<10} zehn Zeichen für den Namen (linksbündig aufgefüllt), während {preis:>6.2f} den Preis rechtsbündig in sechs Zeichen mit zwei Nachkommastellen darstellt. Dadurch stehen die Kommas sauber untereinander.

Der Debug-Trick mit dem Gleichheitszeichen

Seit Python 3.8 gibt es eine kleine, aber extrem nützliche Abkürzung zum Debuggen: Schreibst du ein = hinter den Ausdruck, gibt Python sowohl den Ausdruck als auch sein Ergebnis aus. Du musst den Variablennamen also nicht mehr doppelt tippen.

x = 42
y = 8

print(f"{x + y = }")   # x + y = 50
print(f"{x = }")       # x = 42

Das spart beim schnellen Nachschauen viel Tipparbeit und macht deine print-Ausgaben eindeutig. Ein Detail für die Praxis: In älteren Python-Versionen darfst du innerhalb der Klammern keinen Backslash verwenden – seit Python 3.12 ist auch das erlaubt.

Fazit

f-Strings sind der Standardweg, um in modernem Python Text und Werte zu kombinieren. Sie sind kürzer als Verkettung mit +, lesbarer als .format() und bringen mit den Format-Spezifikatoren mächtige Werkzeuge zum Runden, Ausrichten und Formatieren mit. Merke dir die drei wichtigsten Bausteine: Ausdrücke in den Klammern, ein Doppelpunkt für das Format und das Gleichheitszeichen fürs Debuggen. Wenn du diese Muster verinnerlichst, schreibst du sauberere Ausgaben – und sparst dir eine Menge umständlichen Code.