====== LU12.A02 - Hofladen ====== ===== Ausgangslage ===== In einem Hofladen sind verschiedene Produkte verfügbar. Zum Speichern der Produkte definieren wir eine ''@dataclass'' mit diesen Attributen: * Name des Artikels ''name'' (Text) * Preis des Artikels ''price'' (Dezimalzahl) * Bestand ''stock'' (Ganzzahl) ===== Programmaufgabe ===== Ihr Programm soll die Artikel im Hofladen verwalten. Der Benutzer gibt zuerst den Namens eines Artikels ein. Falls der Name ''Exit'' ist, wird das Programm beendet. Falls der Artikel noch nicht existiert, muss der Benutzer den Preis eingeben. Andernfalls wird der aktuelle Bestand ausgegeben. Zuletzt gibt der Benutzer die Veränderung des Bestands ein. ==== Beispiel ==== Artikelname > Milch Preis > 5.75 Menge > 5 Artikelname > Wurst Preis > 21.10 Menge > 12 Artikelname > Milch Bestand : 5 Menge > -2 Artikelname > Exit ===== Programmablauf ===== **main:** - Erstelle eine leere Liste für die ''Artikelliste'' - Eingabe des ''Artikelnamen'' - Solange ''Artikelnamen'' nicht ''Exit'' ist - Suche in der Liste mit dem ''Artikelnamen'' nach dem Artikel und weise diesen Artikel ''Artikel'' zu --> ''find_article(article_name, article_list):'' - Falls ''Artikel'' ''None'' ist - Erstelle ein neuen ''Artikel'' mit dem ''Artikelnamen'', ''Preis=0.00'' und ''Bestand=0'' - Speichere das Objekt in der ''Artikelliste'' - Eingabe des ''Artikel.Preis'' --> ''input_float(prompt)'' - Sonst - Ausgabe des aktuellen Bestands - Eingabe der ''Menge'' --> ''input_int(prompt)'' - Addiere die ''Menge'' zum ''Artikel.Bestand'' - Eingabe des ''Artikelnamens'' - Gib die ''Artikelliste'' als Returnwert zurück **find_article(article_name, article_list):** - Iteriere über alle ''Artikel'' in der ''Artikelliste'' - Wenn der ''Artikelnamen'' dem ''Artikel.Artikelnamen'' entspricht - Gib den gefundenen ''Artikel'' zurück - Gib ''None'' zurück
//=> GitHub Repo für externe Besucher// GitHub Repository https://github.com/templates-python/m319-lu12-a02-farmshop //Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden//
---- {{tag>M319-LU12}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter