====== 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}') * 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 ==== 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}') * 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 ---- {{tag>m319-LU03}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Marcel Suter