LU03g - Zahlen ausgeben

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.

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}')
  • Der Buchstabe f nach der öffnenden Klammer definiert den F-String (daher kommt auch der Name)
  • Variablen können zwischen geschweiften Klammern eingefügt werden.

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

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}')
  • Der Konstanten “Verkaufsdatum:”, “Menge:”, “Preis:” und “Total:” sollen jeweils 20 Zeichen ausgegeben werden.
  • Die Variablen quantity und price sind Dezimalzahlen und sollen mit 2 Nachkommastellen ausgegeben werden.
  • Die Variable total ist eine Dezimalzahl und sollen mit 3 Nachkommastellen ausgegeben werden.
  • Der Wert der Variable 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

© Marcel Suter

  • modul/m319/learningunits/lu03/zahlausgeben.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1