Aufgaben-Python/04_str_und_darstellung/aufgabe.py

109 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Kapitel 04: __str__ und Objektlisten – Supermarkt & Warenkorb
============================================================
In dieser Aufgabe erstellst du zwei Klassen: 'Artikel' und 'Warenkorb'.
"""
class Artikel:
# ==========================================================================
# TODO 1: Konstruktor für Artikel
# Parameter: self, name (str), preis (float), anzahl (int, Standardwert 1)
# Speichere: self.name, self.preis, self.anzahl
# ==========================================================================
def __init__(self, name, preis, anzahl=1):
# Schreibe hier deinen Code für TODO 1:
pass
# ==========================================================================
# TODO 2: Methode "gesamtpreis(self)"
# Gibt den Preis für diesen Artikel multipliziert mit der Anzahl zurück.
# Beispiel: 3 Äpfel à 0.50€ -> 1.50
# Tipp: return self.preis * self.anzahl
# ==========================================================================
def gesamtpreis(self):
# Schreibe hier deinen Code für TODO 2:
pass
# ==========================================================================
# TODO 3: Dunder-Methode "__str__(self)"
# Gibt einen formatierten String zurück:
# "{anzahl}x {name} (je {preis:.2f} €) = {gesamtpreis:.2f} €"
#
# Beispiel: Bei name="Milch", preis=1.29, anzahl=2:
# -> "2x Milch (je 1.29 €) = 2.58 €"
# ==========================================================================
def __str__(self):
# Schreibe hier deinen Code für TODO 3:
pass
class Warenkorb:
# ==========================================================================
# TODO 4: Konstruktor für Warenkorb
# Parameter: self
# Initialisiere: self.artikel_liste als leere Liste []
# ==========================================================================
def __init__(self):
# Schreibe hier deinen Code für TODO 4:
pass
# ==========================================================================
# TODO 5: Methode "artikel_hinzufuegen(self, artikel)"
# Hängt das übergebene Artikel-Objekt an 'self.artikel_liste' an (.append).
# ==========================================================================
def artikel_hinzufuegen(self, artikel):
# Schreibe hier deinen Code für TODO 5:
pass
# ==========================================================================
# TODO 6: Methode "gesamtsumme(self)"
# Berechnet die Summe der Gesamtpreise aller Artikel in self.artikel_liste
# und gibt diese als float zurück.
#
# Tipp mit Schleife:
# total = 0.0
# for item in self.artikel_liste:
# total += item.gesamtpreis()
# return total
# ==========================================================================
def gesamtsumme(self):
# Schreibe hier deinen Code für TODO 6:
pass
# ==========================================================================
# TODO 7: Methode "bon_text(self)"
# Erzeugt einen formatierten mehrzeiligen String für den Kassenzettel.
# Format:
# --- KASSENZETTEL ---
# 2x Milch (je 1.29 €) = 2.58 €
# 1x Brot (je 2.49 €) = 2.49 €
# --------------------
# Gesamtsumme: 5.07 €
#
# Tipp: Baue eine Liste von Zeilen und verbinde sie am Ende mit "\n".join(...)
# ==========================================================================
def bon_text(self):
# Schreibe hier deinen Code für TODO 7:
pass
# ==============================================================================
# Hauptprogramm zum Ausprobieren:
# (Ausführen mit 'python3 aufgabe.py')
# ==============================================================================
if __name__ == "__main__":
print("🛒 --- SUPERMARKT EINKAUF --- 🛒")
korb = Warenkorb()
a1 = Artikel("Milch", 1.29, 2)
a2 = Artikel("Brot", 2.49, 1)
a3 = Artikel("Schokolade", 0.99, 3)
if hasattr(korb, "artikel_liste"):
korb.artikel_hinzufuegen(a1)
korb.artikel_hinzufuegen(a2)
korb.artikel_hinzufuegen(a3)
print(korb.bon_text())
else:
print("💡 Hinweis: Implementiere die TODOs, um den Kassenbon zu drucken!")