Zum Hauptinhalt springen

Mini-Projekt: Aufgabenmodell

Anforderungen

  • @dataclass Aufgabe
  • Felder: titel, erledigt, punkte
  • Liste von Aufgaben
  • Funktionen mit Type Hints: offene zählen, punkte summe
  • Ausgabe

Beispiellösung

Lösung anzeigen
from dataclasses import dataclass

@dataclass
class Aufgabe:
titel: str
erledigt: bool = False
punkte: int = 1

def anzahl_offen(aufgaben: list[Aufgabe]) -> int:
return sum(1 for a in aufgaben if not a.erledigt)

def punkte_erledigt(aufgaben: list[Aufgabe]) -> int:
return sum(a.punkte for a in aufgaben if a.erledigt)

todos = [
Aufgabe("Mathe-Uebung", punkte=2),
Aufgabe("Zimmer aufraeumen", erledigt=True, punkte=1),
Aufgabe("Python lernen", punkte=3),
]

print("=== Aufgaben ===")
for a in todos:
mark = "x" if a.erledigt else " "
print(f"[{mark}] {a.titel} ({a.punkte})")
print("Offen:", anzahl_offen(todos))
print("Punkte erledigt:", punkte_erledigt(todos))

Kapitel 40 geschafft!

Als Nächstes: Logging und Tests.