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(...)
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 2print 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:
print("a", "b", "c", sep="-") # a-b-c
print("senza newline", end="") # niente \n dopof-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:
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:
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:
# 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:
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
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`.
Hinweis anzeigen
Syntax: f"something {variable} something else"
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
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.
Hinweis anzeigen
Die Formatspezifikation steht nach dem Doppelpunkt in den geschweiften Klammern: {pi:.2f}.
Lösung nach 3 Versuchen verfügbar
Zusätzliche Herausforderung
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.
Hinweis anzeigen
Verwende f"Price: {price} €" und weise das Ergebnis receipt_line zu.
Lösung nach 3 Versuchen verfügbar