Der Warenkorb
Willkommen in der letzten Lektion des Python-Kurses! In ihr bringst du alles zusammen, was du gelernt hast, und baust Schritt für Schritt ein nützliches Programm: den Kassenbon für eine Bestellung in einem Online-Lebensmittelshop. Wenn du fertig bist, gibt dein Programm Folgendes aus:
Artikel Eier kann nicht hinzugefügt werden: Die Menge muss mindestens 1 sein.
KASSENBON
Brot: 2 x 3 € = 6 €
Milch: 6 x 2 € = 12 €
Käse: 1 x 7 € = 7 €
Schokolade: 3 x 5 € = 15 €
Kaffee: 2 x 7 € = 14 €
Summe: 54 €
Lieferung: kostenlos
Zu zahlen: 54 €Das Programm berechnet den Preis jeder Zeile und der ganzen Bestellung, entscheidet, ob die Lieferung kostenlos ist, und prüft die Artikel, die der Kunde in den Warenkorb legt. Du verwendest Variablen, f-Strings, Bedingungen, Listen, Schleifen, Funktionen und Dictionaries: alles aus dem Kurs. Jede Übung knüpft an die vorige an (der Editor beginnt mit ihrem fertigen Code) und fügt ein Stück hinzu.
Die Daten. Der Warenkorb steht in der Variablen warenkorb am Anfang des Programms. Er ist eine Liste von Dictionaries, eines für jeden Artikel. Jedes Dictionary hat drei Schlüssel: "name", "preis" (der Preis eines Stücks in ganzen Euro) und "menge" (wie viele Stück der Kunde möchte). Beachte das Komma hinter dem letzten Dictionary: Python erlaubt es, und es macht das Hinzufügen eines weiteren Artikels einfacher. In einem echten Shop kämen die Daten von der Website. Die Programme hier bekommen ihre Daten aus Variablen.
Der Plan. Das Programm ist in Funktionen aufgeteilt, und jede hat eine Aufgabe. Bisher gibt es nur eine: kassenbon_ausgeben(positionen), die den Kassenbon für die Liste der Positionen ausgibt, die sie als Argument bekommt. Vorerst gibt sie nur die Überschrift aus. Ganz unten ruft das Programm sie mit unserem Warenkorb auf. Das ist die übliche Form eines Programms: oben die Daten, dann die Funktionen und am Ende der Code, der sie verwendet.
Arbeite in der Funktion mit dem Parameter positionen, nicht mit warenkorb. Dann gibt die Funktion den Kassenbon für jede Liste aus, die sie bekommt, nicht nur für diesen einen Warenkorb.
Zur Erinnerung, wie man eine Liste von Dictionaries durchläuft:
buecher = [
{"titel": "Der Hobbit", "seiten": 310},
{"titel": "Matilda", "seiten": 240},
]
for buch in buecher:
print(f"{buch['titel']}: {buch['seiten']} Seiten")Der Hobbit: 310 Seiten
Matilda: 240 SeitenAchte auf die Anführungszeichen: Der f-String steht in doppelten Anführungszeichen, deshalb stehen die Schlüssel darin in einfachen. Doppelte Anführungszeichen in doppelten funktionieren nur in neueren Python-Versionen.
So schreibst du es:
Anweisungen
- 1
Schreibe in
kassenbon_ausgeben()unter der Zeile, die die Überschrift ausgibt, einefor-Schleife, diepositionendurchläuft und den Namen jedes Artikels ausgibt. - 2
Vervollständige die Zeile in der Schleife so, dass sie auch die Menge und den Preis eines Stücks zeigt. Verwende einen f-String. Die erste Zeile des Kassenbons lautet
Brot: 2 x 3 €. Das€ist im f-String ganz normaler Text: Schreibe es hinter die geschweiften Klammern mit dem Preis, durch ein Leerzeichen getrennt.