Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from rich import get_console
- from rich.table import Table
- def normalisiert(gesamt: list[int], anzahl_straftäter: list[int]) -> list[float]:
- """
- Berechnet für jede Bevölkerungsgruppe die normierte Straftäterrate.
- gesamt: Gesamtgröße der jeweiligen Bevölkerungsgruppe.
- anzahl_straftäter: Anzahl der Straftäter je Gruppe.
- Eine Liste mit den normierten Raten (0.0 bis 1.0).
- """
- if len(anzahl_straftäter) != len(gesamt):
- raise ValueError("Beide Listen müssen gleich lang sein.")
- ergebnis = []
- for straftäter, bevölkerung in zip(anzahl_straftäter, gesamt):
- if bevölkerung <= 0:
- raise ValueError("Alle Bevölkerungsgrößen müssen größer als 0 sein.")
- ergebnis.append(straftäter / bevölkerung)
- return ergebnis
- def zeige_tabelle(farben: list[str], gesamt: list[int], anzahl_straftäter: list[int]):
- ergebnis = normalisiert(gesamt, anzahl_straftäter)
- summe = sum(gesamt)
- console = get_console()
- table = Table(title="Normalisierte Kriminalitätsraten")
- for col in (
- "Farbe",
- "Population",
- "Strafäter",
- "Rel. (gesamt)",
- "Rel. (normalisiert)",
- ):
- table.add_column(col)
- for farbe, anzahl, straftäter, rel_norm in zip(
- farben, gesamt, anzahl_straftäter, ergebnis
- ):
- rel_gesamt = straftäter / summe
- table.add_row(
- f"{farbe.title()} Schafe",
- f"{anzahl:>10}",
- f"{straftäter:>10}",
- f"{rel_gesamt:>7.1%}",
- f"{rel_norm:>7.1%}",
- )
- console.print(table)
- schwarze_schafe = 90
- weiße_schafe = 10
- straftaten_schwarz = 5
- straftaten_weiß = 5
- farben = ["schwarze", "weiße"]
- gesamt = [schwarze_schafe, weiße_schafe]
- anzahl_straftäter = [straftaten_schwarz, straftaten_weiß]
- zeige_tabelle(farben, gesamt, anzahl_straftäter)
Advertisement