Abschnitt 2 · Lektion 4
Text mit Werten
Menge: (3) sieht nach einer harmlosen Ausgabe aus. Mit + wird trotzdem nichts daraus, weil sich
Text und Zahl so nicht verbinden lassen. Das Komma in print hilft zwar, aber dann setzt print
die Leerzeichen, wo es will.
menge = 3
print("Menge: (", menge, ")")
print(f"Menge: ({menge})") In der ersten Zeile siehst du das Problem: Menge: ( 3 ). print setzt zwischen jeden Teil ein
Leerzeichen, auch dort, wo keins hingehört. Die zweite Zeile trifft die Ausgabe genau. Der
Unterschied ist ein f vor dem Text.
Ein f vor dem Text
Wenn vor dem öffnenden Anführungszeichen ein f steht, wird aus dem Text ein f-String (f für
formatted). Darin darfst du geschweifte Klammern setzen. Was in den Klammern steht, rechnet Python
aus und setzt das Ergebnis genau an dieser Stelle ein, ohne ein einziges Leerzeichen
dazuzuschreiben, das du nicht selbst getippt hast. Und umwandeln musst du auch nichts, weil Zahlen
von selbst zu Text werden.
artikel = "Kaffee"
preis = 6.99
menge = 2
print(f"{menge} x {artikel} kostet {menge * preis} Euro") In die Klammern dürfen nicht nur Namen, sondern ganze Rechnungen. {menge * preis} rechnet und
setzt 13.98 ein. So schreibt man jede Ausgabe, die mehr als ein Wort ist, und ab jetzt stehen die
Ausgaben im Kurs fast immer so da.
Das f vergisst man am Anfang gern. Dann steht im Ergebnis wörtlich {menge} x {artikel}, mit
Klammern. Wenn du das siehst, weißt du sofort, was fehlt.
Wie es aussehen soll
Nach einem Doppelpunkt in den Klammern darf eine Formatangabe stehen. Am Wert ändert sie nichts. Sie legt nur fest, wie er im Text erscheint.
preis = 2.5
print(f"Preis: {preis} Euro")
print(f"Preis: {preis:.2f} Euro")
print(f"Summe: {0.1 + 0.2:.2f}") Mit {preis:.2f} steht der Wert als Kommazahl mit genau zwei Stellen nach dem Punkt da. Aus 2.5
wird 2.50, so wie man es auf einem Preisschild erwartet. Die dritte Zeile löst nebenbei das
Problem aus Lektion 2.2. 0.30000000000000004 mit zwei Stellen ist einfach 0.30. Gerundet wird
dabei nur in der Ausgabe, der Wert selbst bleibt, wie er ist.
Die Formatangabe liest man von links nach rechts. .2 steht für zwei Nachkommastellen, f für eine
Kommazahl. .0f rundet auf ganze Zahlen, .1f auf eine Stelle.
Spalten
Für Tabellen fehlt noch, dass Dinge untereinanderstehen. Dafür bekommt die Formatangabe eine Breite.
name = "Brot"
preis = 2.49
print(f"|{'Artikel':<10}|{'Preis':>8}|")
print(f"|{name:<10}|{preis:>8.2f}|") Die senkrechten Striche sind nur da, damit man die Ränder sieht. {name:<10} macht den Wert zehn
Zeichen breit und linksbündig, der Rest wird mit Leerzeichen aufgefüllt. {preis:>8.2f} macht ihn
acht Zeichen breit und rechtsbündig, mit zwei Nachkommastellen. Das < und das > sind wie Pfeile.
Sie zeigen in die Richtung, in die der Text rutscht.
So stehen die Preise untereinander wie auf einem Kassenbon, egal ob ein Artikel Brot heißt oder
Vollkornbrot. Wer schon einmal versucht hat, so etwas mit Leerzeichen von Hand auszurichten, weiß
das zu schätzen.
In der ersten Zeile des Beispiels steht in den Klammern ein fester Text, 'Artikel'. Dafür gibt es
eine Regel. Innen stehen andere Anführungszeichen als außen, also außen doppelte und innen einfache.
Ab Python 3.12 dürfen es auch dieselben sein. Auf vielen Rechnern läuft aber noch eine ältere
Version, und da wäre f"{"Artikel"}" ein Syntaxfehler. Mit wechselnden Zeichen läuft es überall.
Amerikanisch bleibt vorerst der Punkt als Dezimalzeichen, also 2.50 statt 2,50. Dafür entsteht
in Abschnitt 6 ein kleines Werkzeug. Bis dahin sieht der Kassenbon eben aus wie aus einem
amerikanischen Supermarkt.
Zum Mitnehmen
Ein f vor dem Anführungszeichen, und alles in geschweiften Klammern wird ausgerechnet und eingesetzt. Nach einem Doppelpunkt darin steht, wie es aussehen soll.
Jetzt du
Basis Konto, kostenlosZu dieser Lektion gehört eine Aufgabe. Du schreibst den Code selbst, und nach jedem Lauf sagt dir eine Prüfliste, was schon stimmt.
Dafür brauchst du das Basis Konto. Es kostet nichts, und ein Passwort gibt es auch nicht.
In diesem Kurs läuft dein Code auf einem Server. Dafür hat das Basis Konto 1 Stunde im Monat, mehr Zeit gibt es mit dem Premium Konto.
Was in dieser Lektion steckt
-
Artikel mit 4 Beispielen zum Ausprobieren
Steht hier, ohne Konto lesbar.
-
Aufgabe, dein Code läuft auf einem Server
Öffnet sich mit dem Basis Konto.