8.4.2. f-Strings (A)#
Formatted String Literals (f-Strings) sind eine elegante Möglichkeit, Variablen und Ausdrücke direkt in Strings einzubinden.
8.4.2.1. Syntax#
Ein f-String beginnt mit f oder F vor den Anführungszeichen:
name = "Anna"
alter = 25
text = f"Mein Name ist {name} und ich bin {alter} Jahre alt."
print(text) # Ausgabe: Mein Name ist Anna und ich bin 25 Jahre alt.
8.4.2.2. Variablen einbinden#
Sie können beliebige Variablen in geschweiften Klammern {} einbinden:
zahl = 42
print(f"Die Antwort ist {zahl}") # Ausgabe: Die Antwort ist 42
8.4.2.3. Ausdrücke in f-Strings#
Sie können nicht nur Variablen, sondern auch Ausdrücke in f-Strings verwenden:
x = 5
y = 3
print(f"Die Summe von {x} und {y} ist {x + y}") # Ausgabe: Die Summe von 5 und 3 ist 8
print(f"Das Quadrat von {x} ist {x ** 2}") # Ausgabe: Das Quadrat von 5 ist 25
8.4.2.4. Formatierung mit f-Strings#
f-Strings unterstützen auch Formatierungsoptionen:
# Dezimalstellen bei Fließkommazahlen
pi = 3.14159265359
print(f"Pi auf 2 Dezimalstellen: {pi:.2f}") # Ausgabe: Pi auf 2 Dezimalstellen: 3.14
print(f"Pi auf 4 Dezimalstellen: {pi:.4f}") # Ausgabe: Pi auf 4 Dezimalstellen: 3.1416
# Zahlen mit Tausendertrennzeichen
große_zahl = 1234567
print(f"Zahl mit Trennzeichen: {große_zahl:,}") # Ausgabe: Zahl mit Trennzeichen: 1,234,567
# Prozentangaben
anteil = 0.75
print(f"Anteil als Prozent: {anteil:.1%}") # Ausgabe: Anteil als Prozent: 75.0%
8.4.2.5. Datentypkonvertierung in f-Strings#
Auch in f-Strings werden alle Werte automatisch zu Strings konvertiert:
zahl = 42
liste = [1, 2, 3]
woerterbuch = {"a": 1, "b": 2}
print(f"Zahl: {zahl}, Liste: {liste}, Wörterbuch: {woerterbuch}")
# Ausgabe: Zahl: 42, Liste: [1, 2, 3], Wörterbuch: {'a': 1, 'b': 2}
Exercise 8.2 (Praxisaufgabe (PA2.1): Stromrechnung mit Ausgabeformat :.2f)
Implementieren Sie eine Stromrechnung:
bis 2500 kWh: 0,40 €/kWh
die nächsten 2500 kWh: 0,35 €/kWh
darüber: 0,30 €/kWh
Geben Sie den Rechnungsbetrag mit zwei Nachkommastellen aus (Formatierung in f-Strings).
kwh = float(input("Verbrauch in kWh: "))
# TODO: preis berechnen (if/elif/else)
print(f"Rechnungsbetrag: {preis:.2f} EUR")