61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
# -*- coding: ansi -*-
|
|
from print_tables import tables
|
|
import csv
|
|
|
|
# Klassen-Daten einlesen
|
|
klassen = {
|
|
"s6a": [],
|
|
"s6b": [],
|
|
"s6c": [],
|
|
"s6ds": [],
|
|
"s6es": []
|
|
}
|
|
|
|
try:
|
|
with open("vornamen_6kl_25.csv", "r", encoding="utf-8") as f:
|
|
reader = csv.reader(f, delimiter=";")
|
|
for row in reader:
|
|
for i, key in enumerate(klassen.keys()):
|
|
if i >= len(row):
|
|
continue
|
|
name = row[i].strip()
|
|
if name:
|
|
klassen[key].append(name)
|
|
except FileNotFoundError as err:
|
|
print(err)
|
|
|
|
# Alphabetisch sortieren und unique machen, aber Gesamtzahl vorher sichern
|
|
gesamtzahlen = {}
|
|
for key in klassen:
|
|
gesamtzahlen[key] = len(klassen[key]) # Anzahl aller Schüler inkl. Duplikate
|
|
klassen[key] = sorted(set(klassen[key])) # Unique + alphabetisch
|
|
|
|
# Originale Tabelle ausgeben
|
|
tables.print_table(klassen)
|
|
|
|
# Statistik vorbereiten
|
|
stats = {
|
|
"Klasse": [],
|
|
"Eigene Vornamen": [],
|
|
"Schüler gesamt": []
|
|
}
|
|
|
|
gesamt_schueler = 0
|
|
for klasse, namen in klassen.items():
|
|
stats["Klasse"].append(klasse)
|
|
stats["Eigene Vornamen"].append(len(namen))
|
|
stats["Schüler gesamt"].append(gesamtzahlen[klasse])
|
|
gesamt_schueler += gesamtzahlen[klasse]
|
|
|
|
# Statistik-Tabelle ausgeben
|
|
print("\nKlassenstatistik:")
|
|
tables.print_table(stats)
|
|
print(f"\nGesamtanzahl Schüler: {gesamt_schueler}")
|
|
|
|
# Alle unique Namen über alle Klassen
|
|
alle_namen = set()
|
|
for namen in klassen.values():
|
|
alle_namen.update(namen)
|
|
|
|
print(f"Gesamtzahl eigene Vornamen: {len(alle_namen)}")
|