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.