Python f-Strings
Mit Python f-Strings fügst du komplexe Ausdrücke und Variablen direkt in eine Zeichenkette ein, ohne mühsame Konvertierungen oder Formatierungen vornehmen zu müssen.
Was sind Python f-Strings eigentlich?
Python f-Strings sind ein Format für Zeichenketten, das seit Python 3.6 zur Verfügung steht. Man nennt sie auch formatierte String-Literale. Du kannst innerhalb dieser f-Strings Berechnungen direkt in geschweiften Klammern auswerten lassen. Im Vergleich zu Methoden wie str.format() oder der Verbindung mittels + bieten f-Strings eine wesentlich kompaktere Schreibweise. Das sorgt für sauberen und gut lesbaren Code.
Die Flexibilität ist ein großer Pluspunkt: Ob Integer, Floats, Listen oder ganze Funktionen – du betest verschiedene Datentypen ohne manuelle Umwandlung ein. Zudem punkten Python f-Strings meist mit einer höheren Geschwindigkeit als herkömmliche Formatierungsvarianten.
Die grundlegende Syntax
Ein f-String beginnt immer mit dem Präfix f oder F, gefolgt von Anführungszeichen (“ oder ’). Um Variablen oder Ausdrücke zu integrieren, nutzt du innerhalb der Zeichenkette einfach geschweifte 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.pythonIn diesem Beispiel werden die Platzhalter 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 verschiedene Zwecke präzise anpassen.
Rechnen direkt im String
Besonders effizient sind f-Strings, wenn du mathematische Operationen unmittelbar in der Zeichenkette auswerten willst. So definierst du Berechnungen platzsparend 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 15pythonDabei wird die Summe von num1 und num2 direkt im f-String kalkuliert und das Ergebnis in den Text übernommen.
Kombination mit Raw Strings
Verbindest du r (für Raw Strings) mit f (für f-Strings), erhältst du einen sogenannten rf-String. Dieser ist ideal, wenn Escape-Sequenzen eins zu eins interpretiert werden sollen, du aber gleichzeitig 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.txtpythonHier definieren wir einen Pfad. Durch {name} wird die Variable name eingefügt, während das vorangestellte r dafür sorgt, dass der Backslash \ als normales Zeichen gilt und keine Sonderfunktion auslöst.
Genauigkeit bei Kommazahlen
Über Formatierungsbefehle steuerst du exakt, wie viele Nachkommastellen eine Gleitkommazahl im Text anzeigen soll.
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142pythonDie Anweisung :.3f sorgt hier dafür, dass der Wert value auf drei Stellen nach dem Komma gerundet im String erscheint.
Platzierung und Ausrichtung
Mit f-Strings behältst du die volle Kontrolle über die Darstellung deiner Werte in einem definierten Bereich. Das ist nützlich, um Texte oder Ziffern linksbündig, rechtsbündig oder mittig anzuordnen.
Ein Beispiel: Der Name __Alice__ soll in einem Feld von zehn Zeichen Länge rechtsbündig stehen:
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, AlicepythonDa 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 einheitlichen Look zu präsentieren – ideal für Uhrzeiten oder fortlaufende Nummern.
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042pythonDie Kennzeichnung :06 bewirkt, dass die Zahl number in einem sechsstelligen 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