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.