LU03g - Zahlen ausgeben

Wir gewöhnen uns an, immer F-Strings 'f{} zu verwenden.

Konstanten und Variablen kombinieren

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.

Nachkommastellen

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.

Ausgabe mit F-Strings

Siehe auch http://cissandbox.bentley.edu/sandbox/wp-content/uploads/2022-02-10-Documentation-on-f-strings-Updated.pdf

Eine Alternative ist die Verwendung eines F-strings in der print-Funktion.

price = 13.15
print(f'Preis: {price}')

Dadurch entfällt für uns das Zusammensetzen des Strings und das Umwandeln von Zahlenvariablen.

Runden

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

Darstellung von Texten und Zahlen

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}')

Die Ausgabe:

Verkaufsdatum:       11.01.2023
Menge:               4.7
Preis:               CHF 2.31
Total:               CHF 10.857

© Marcel Suter