Wir gewöhnen uns an, immer F-Strings 'f{}
zu verwenden.
Um Konstanten und Variablen auszugeben, können wir diese zu einem String zusammensetzen (konkatenieren). Diese Möglichkeit haben Sie eventuell bereits in ähnlicher Form in Java kennen gelernt:
price = 13.15 # Beispiel 1 print('Preis: ' + str(price)) # Diese Variante verwenden wir nicht. # Beispiel 2 print(f'Preis: {price}') # Diese Variante verwenden wir.
Beispiel 1: Die Konstante Preis :
und der Wert der Variable price
zu einem String zusammengesetzt.
Da price
eine Zahl ist, muss sie mit Hilfe der Funktion str(…)
umgewandelt werden.
Beispiel 2: Da price
eine Zahl ist, kann sie in einem F-String in geschweiften Klammern {}
gestzt werden und so mit der Konstanten Preis :
verbunden werden.
Bei Berechnungen mit Dezimalzahlen stellen wir oft fest, dass das Resultat sehr viele Nachkommastellen hat und manchmal auch nicht ganz korrekt ist.
Der Sourcecode
quantity = 4.7 price = 2.31 total = quantity * price print(f'{quantity} Stück à CHF {price} = CHF {total}')
Die Ausgabe:
4.7 Stück à CHF 2.31 = CHF 10.857000000000001
Dieses Problem kann am einfachsten mit F-Strings gelöst werden. Beispiele dazu finden Sie unten.
Eine Alternative ist die Verwendung eines F-strings
in der print-Funktion.
price = 13.15 print(f'Preis: {price}')
f
nach der öffnenden Klammer definiert den F-String (daher kommt auch der Name)Dadurch entfällt für uns das Zusammensetzen des Strings und das Umwandeln von Zahlenvariablen.
Eine Möglichkeit die Situation zu verbessern, ist die Zahlen zu runden.
Die Python-Funktion round(zahl, stellen)
rundet eine Dezimalzahl auf die angegebene Anzahl von Stellen.
quantity = 4.7 price = 2.31 total = quantity * price total = round(total,2) print(f'{quantity} Stück à CHF {price} = CHF {total}')
Die Ausgabe:
4.7 Stück à CHF 2.31 = CHF 10.86
Mit F-Strings können wir die Darstellung von Werten beeinflussen. Nach dem Namen einer Variable können wir verschiedene Formatcodes angeben.
sales_date = datetime.now() print(f'{"Verkaufsdatum":20} {sales_date:%d.%m.%Y %H:%M}') quantity = 4.7 print(f'{"Menge:":20} {quantity:.2f}') price = 2.3111111111 print(f'{"Preis:":20} CHF {price:.2f}') total = quantity * price print(f'{"Total:":20} CHF {total:.3f}')
quantity
und price
sind Dezimalzahlen und sollen mit 2 Nachkommastellen ausgegeben werden.total
ist eine Dezimalzahl und sollen mit 3 Nachkommastellen ausgegeben werden.sales_date
soll als Datum im Format dd.mm.jjjj ausgegeben werden.Die Ausgabe:
Verkaufsdatum: 11.01.2023 Menge: 4.7 Preis: CHF 2.31 Total: CHF 10.857