Zum Hauptinhalt springen

Mini-Projekt: Punkteverwaltung mit CSV

Anforderungen

  • CSV schreiben (Kopf + Daten)
  • CSV lesen
  • Durchschnitt + Maximum
  • Rangliste
  • optional: neuen Eintrag anhängen

Beispiellösung

Lösung anzeigen
import csv

PFAD = "klasse.csv"

# speichern (Demo)
with open(PFAD, "w", encoding="utf-8", newline="") as f:
w = csv.DictWriter(f, fieldnames=["name", "punkte"])
w.writeheader()
w.writerows([
{"name": "Luna", "punkte": 12},
{"name": "Lily", "punkte": 18},
{"name": "Py", "punkte": 15},
])

# laden + auswerten
rows = []
with open(PFAD, "r", encoding="utf-8", newline="") as f:
for row in csv.DictReader(f):
rows.append({"name": row["name"], "punkte": int(row["punkte"])})

print("=== Auswertung ===")
for r in sorted(rows, key=lambda x: x["punkte"], reverse=True):
print(f"{r['name']}: {r['punkte']}")
print("Schnitt:", sum(r["punkte"] for r in rows) / len(rows))
print("Max:", max(r["punkte"] for r in rows))

Kapitel 34 geschafft!

Als Nächstes: SQLite – echte Tabellen in einer Datei.