LU03g - Zahlen ausgeben

Wir gewöhnen uns an, (fast) 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 anderen Programmiersprachen 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 {} gesetzt 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