Direkt zum Hauptinhalt springen
eLearner.app
Modul 1 · Lektion 4 von 44/36 im Kurs~8 min
Lektionen des Moduls (4/4)

Ausgabe und f-Strings

Um dem Benutzer etwas mitzuteilen (oder um zu sehen, was in unserem Programm passiert), verwenden wir die integrierte Funktion print(...). Um Text aus mehreren Werten zusammenzusetzen, ist die moderne und bevorzugte Syntax die f-String-Syntax.

print(...)

Python
print("Ciao, mondo!")           # Ciao, mondo!
print("a", "b", "c")            # a b c       (separati da spazio)
print(2 + 2)                    # 4
print("riga 1", "riga 2")       # riga 1 riga 2

print kann so viele Argumente entgegennehmen, wie du möchtest: Sie werden standardmäßig durch ein Leerzeichen getrennt und am Ende wird ein Zeilenumbruch angehängt. Du kannst beides mit den Parametern sep und end ändern:

Python
print("a", "b", "c", sep="-")   # a-b-c
print("senza newline", end="")  # niente \n dopo

f-String: Moderne Interpolation

Ein f-String ist ein String mit dem Präfix f: Innerhalb der geschweiften Klammern {...} kannst du jeden beliebigen Python-Ausdruck einfügen, der ausgewertet und in das Ergebnis eingefügt wird:

Python
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.

Innerhalb der geschweiften Klammern kannst du Aufrufe, Operationen und Objektzugriffe platzieren — es handelt sich in jeder Hinsicht um Python-Code:

Python
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €

Das :.2f nach dem Doppelpunkt ist eine Formatspezifikation (format spec): in diesem Fall "zwei Dezimalstellen, Festkomma". Die nützlichsten Formatspezifikationen:

  • :.Nf — N Dezimalstellen (f"{pi:.4f}"3.1416).
  • :N / :>N / :<N / :^N — Breite N, Ausrichtung rechts/links/zentriert.
  • :_ oder :, — Tausendertrennzeichen (f"{1000000:,}"1,000,000).

Alternative Syntaxen (zur Referenz)

Vor den f-Strings (eingeführt in Python 3.6) wurden zwei Formen verwendet, die du in älterem Code immer noch begegnen wirst:

Python
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)

# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)

Verwende für neuen Code immer f-Strings: kürzer, lesbarer, schneller.

Fortgeschrittene Formatierung mit f-Strings

f-Strings unterstützen umfangreiche Formatierungsspezifikationen direkt innerhalb der geschweiften Klammern. Um beispielsweise eine Dezimalzahl mit genau zwei Dezimalstellen zu formatieren, kannst du Folgendes schreiben:

Python
price = 19.99
print(f"Price: {price:.2f} $")

Der Spezifizierer :.2f gibt an, dass wir den Float mit genau 2 Dezimalstellen darstellen möchten.

Probiere es aus

Übung#python.m1.l4.e1
Versuche: 0Wird geladen…

Gegeben seien `name = 'Ada'` und `age = 30`. Erstelle den String 'Ada ha 30 anni' mit einem f-String und weise ihn `line` zu. Evaluiere `line`.

Editor wird geladen…
Hinweis anzeigen

Syntax: f"something {variable} something else"

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m1.l4.e2
Versuche: 0Wird geladen…

Gib mit print() den String 'pi greco vale 3.14' ausgehend von `pi = 3.14159` aus, unter Verwendung eines f-Strings mit einer Formatspezifikation von 2 Dezimalstellen.

Editor wird geladen…
Hinweis anzeigen

Die Formatspezifikation steht nach dem Doppelpunkt in den geschweiften Klammern: {pi:.2f}.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m1.l4.e3
Versuche: 0Wird geladen…

Verwende bei einer Variablen `price`, die auf `19.99` gesetzt ist, einen f-String, um den String `'Price: 19.99 €'` zu erstellen, und speichere ihn in `receipt_line`. Evaluiere schließlich die Variable.

Editor wird geladen…
Hinweis anzeigen

Verwende f"Price: {price} €" und weise das Ergebnis receipt_line zu.

Lösung nach 3 Versuchen verfügbar