Mit Python f-Strings fügst du komplexe Ausdrücke und Variablen direkt in eine Zei­chen­ket­te ein, ohne mühsame Kon­ver­tie­run­gen oder For­ma­tie­run­gen vornehmen zu müssen.

Was sind Python f-Strings ei­gent­lich?

Python f-Strings sind ein Format für Zei­chen­ket­ten, das seit Python 3.6 zur Verfügung steht. Man nennt sie auch for­ma­tier­te String-Literale. Du kannst innerhalb dieser f-Strings Be­rech­nun­gen direkt in ge­schweif­ten Klammern auswerten lassen. Im Vergleich zu Methoden wie str.format() oder der Ver­bin­dung mittels + bieten f-Strings eine we­sent­lich kom­pak­te­re Schreib­wei­se. Das sorgt für sauberen und gut lesbaren Code.

Die Fle­xi­bi­li­tät ist ein großer Pluspunkt: Ob Integer, Floats, Listen oder ganze Funk­tio­nen – du betest ver­schie­de­ne Da­ten­ty­pen ohne manuelle Um­wand­lung ein. Zudem punkten Python f-Strings meist mit einer höheren Ge­schwin­dig­keit als her­kömm­li­che For­ma­tie­rungs­va­ri­an­ten.

Die grund­le­gen­de Syntax

Ein f-String beginnt immer mit dem Präfix f oder F, gefolgt von An­füh­rungs­zei­chen (“ oder ’). Um Variablen oder Ausdrücke zu in­te­grie­ren, nutzt du innerhalb der Zei­chen­ket­te einfach ge­schweif­te Klammern {}.

name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.
python

In diesem Beispiel werden die Platz­hal­ter name durch {name} und age durch {age} ersetzt, woraus die fertige Ausgabe entsteht.

So setzt du Python f-Strings ein

f-Strings lassen sich für viele ver­schie­de­ne Zwecke präzise anpassen.

Rechnen direkt im String

Besonders effizient sind f-Strings, wenn du ma­the­ma­ti­sche Ope­ra­tio­nen un­mit­tel­bar in der Zei­chen­ket­te auswerten willst. So de­fi­nierst du Be­rech­nun­gen platz­spa­rend in nur einer Zeile.

num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15
python

Dabei wird die Summe von num1 und num2 direkt im f-String kal­ku­liert und das Ergebnis in den Text über­nom­men.

Kom­bi­na­ti­on mit Raw Strings

Ver­bin­dest du r (für Raw Strings) mit f (für f-Strings), erhältst du einen so­ge­nann­ten rf-String. Dieser ist ideal, wenn Escape-Sequenzen eins zu eins in­ter­pre­tiert werden sollen, du aber gleich­zei­tig Variablen dynamisch einbetten möchtest.

name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
python

Hier de­fi­nie­ren wir einen Pfad. Durch {name} wird die Variable name eingefügt, während das vor­an­ge­stell­te r dafür sorgt, dass der Backslash \ als normales Zeichen gilt und keine Son­der­funk­ti­on auslöst.

Ge­nau­ig­keit bei Kom­ma­zah­len

Über For­ma­tie­rungs­be­feh­le steuerst du exakt, wie viele Nach­kom­ma­stel­len eine Gleit­kom­ma­zahl im Text anzeigen soll.

value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
python

Die Anweisung :.3f sorgt hier dafür, dass der Wert value auf drei Stellen nach dem Komma gerundet im String erscheint.

Plat­zie­rung und Aus­rich­tung

Mit f-Strings behältst du die volle Kontrolle über die Dar­stel­lung deiner Werte in einem de­fi­nier­ten Bereich. Das ist nützlich, um Texte oder Ziffern links­bün­dig, rechts­bün­dig oder mittig an­zu­ord­nen.

Ein Beispiel: Der Name __Alice__ soll in einem Feld von zehn Zeichen Länge rechts­bün­dig stehen:

name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello,      Alice
python

Da der Name kürzer als zehn Zeichen ist, rückt ihn die Angabe {name:>10} an den rechten Rand.

Auffüllen mit Nullen oder Zeichen

Das Auffüllen hilft dabei, Zahlen in einem ein­heit­li­chen Look zu prä­sen­tie­ren – ideal für Uhrzeiten oder fort­lau­fen­de Nummern.

number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
python

Die Kenn­zeich­nung :06 bewirkt, dass die Zahl number in einem sechs­stel­li­gen Feld landet, wobei leere Plätze vorne mit Nullen besetzt werden.

Du kannst statt Nullen natürlich auch andere Zeichen zum Auffüllen wählen:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Zum Hauptmenü