Zum Hauptinhalt springen

F-Strings

Warum brauchen wir das?

So wird es schnell unübersichtlich:

print("Hallo " + name + ", du hast " + str(punkte) + " Punkte!")

Probleme:

  • viele +
  • str(...) nötig
  • leicht Leerzeichen vergessen

Mit einem f-String:

print(f"Hallo {name}, du hast {punkte} Punkte!")

Lesbarer. Weniger Fehler. Weniger Chaos.

Definition: f-String

Definition:
Ein f-String ist ein String, der mit einem f direkt vor den Anführungszeichen beginnt.
Innerhalb des Strings kannst du in geschweiften Klammern Werte einsetzen.

f"Text {variable} Text"
TeilBedeutung
f„formatierter String“ / Einsetz-Modus
"..."normaler String-Rahmen
{name}Platzhalter: setze den Wert von name hier ein

Lily und der Punktesatz

name = "Lily"
punkte = 18
print(f"{name} hat {punkte} Punkte.")

Ausgabe:

Lily hat 18 Punkte.

Py: „Das f schaltet den Einsetz-Modus ein.“
Buggy vergisst das f – dann erscheinen die Klammern als normaler Text.

Neue Wörter

f-Stringf-string / formatted string literal

String mit f davor; Werte in geschweiften Klammern werden eingesetzt.

Platzhalterplaceholder

Die Stelle im Text, an der ein Wert eingesetzt wird.

Mit und ohne f – der große Unterschied

name = "Luna"
print(f"Hallo {name}")
print("Hallo {name}")
CodeAusgabe
mit fHallo Luna
ohne fHallo {name}

Ohne f sind die geschweiften Klammern nur Text.

Auch Ausdrücke sind erlaubt

a = 3
b = 4
print(f"Summe: {a + b}")

Ausgabe: Summe: 7

Für den Anfang: lieber kurze, klare Ausdrücke in den Klammern.

Mehrere Platzhalter

held = "Py"
level = 3
print(f"Held {held} ist auf Level {level}.")

Was passiert im Computer?

  1. Python sieht das f.
  2. Es sucht geschweifte Klammern im String.
  3. Es berechnet/ersetzt die Werte.
  4. Es erzeugt den fertigen Text.
  5. print zeigt ihn an.

Häufige Fehler

FehlerFolge
f vergessenKlammern bleiben sichtbar
Variable falsch geschriebenNameError
Anführungszeichen im String unpassendSyntaxError

Probiere es selbst

Experiment 1

name = input("Name: ")
print(f"Willkommen, {name}!")

Experiment 2

Name, Alter, Fach in einem Satz.

Experiment 3

preis = 2
anzahl = 5
print(f"Gesamt: {preis * anzahl} Euro")

Fehlerdetektiv

name = "Lily"
print("{name} lernt Python.")
Lösung

f fehlt:

print(f"{name} lernt Python.")

Übungen

Level 1

tier = "Panda" → f-String: Mein Lieblingstier ist Panda.

Lösung
tier = "Panda"
print(f"Mein Lieblingstier ist {tier}.")

Level 2

Zwei Eingaben, ein f-String-Satz.

Lösung
name = input("Name: ")
stadt = input("Stadt: ")
print(f"{name} kommt aus {stadt}.")

Level 3

Status wie ein Spiel-HUD: Name, Leben, Punkte in drei f-String-Zeilen.

Beispiel
name = input("Name: ")
leben = int(input("Leben: "))
punkte = int(input("Punkte: "))
print(f"Spieler: {name}")
print(f"Leben: {leben}")
print(f"Punkte: {punkte}")

Mini-Challenge

Baue eine einzeilige „News-Meldung“ aus drei Variablen.
Erkläre: Was passiert, wenn das f fehlt?

Zusammenfassung

  • f-Strings setzen Werte elegant in Text ein.
  • f muss vor dem String stehen.
  • Platzhalter in geschweiften Klammern.
  • Zahlen werden automatisch eingebaut.
  • Ohne f bleiben die Klammern normaler Text.

Mini-Quiz

Mini-QuizWas fehlt oft, wenn geschweifte Klammern als Text erscheinen?
  1. Warum sind f-Strings oft besser als viele Plus-Zeichen?
  2. Darf man in den Klammern a + b schreiben?
  3. Was macht f"Hi {name}"?
Lösungen
  1. Kürzer und übersichtlicher.
  2. Ja.
  3. Setzt den Wert von name ein.

f-Strings sitzen! Als Nächstes: Textlänge mit len().