DeaD_EyE

norm_krimi.py

Jul 11th, 2026
15,453
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.91 KB | None | 0 0
  1. from rich import get_console
  2. from rich.table import Table
  3.  
  4.  
  5. def normalisiert(gesamt: list[int], anzahl_straftäter: list[int]) -> list[float]:
  6.     """
  7.    Berechnet für jede Bevölkerungsgruppe die normierte Straftäterrate.
  8.  
  9.    gesamt: Gesamtgröße der jeweiligen Bevölkerungsgruppe.
  10.    anzahl_straftäter: Anzahl der Straftäter je Gruppe.
  11.  
  12.    Eine Liste mit den normierten Raten (0.0 bis 1.0).
  13.    """
  14.     if len(anzahl_straftäter) != len(gesamt):
  15.         raise ValueError("Beide Listen müssen gleich lang sein.")
  16.  
  17.     ergebnis = []
  18.  
  19.     for straftäter, bevölkerung in zip(anzahl_straftäter, gesamt):
  20.         if bevölkerung <= 0:
  21.             raise ValueError("Alle Bevölkerungsgrößen müssen größer als 0 sein.")
  22.         ergebnis.append(straftäter / bevölkerung)
  23.  
  24.     return ergebnis
  25.  
  26.  
  27. def zeige_tabelle(farben: list[str], gesamt: list[int], anzahl_straftäter: list[int]):
  28.     ergebnis = normalisiert(gesamt, anzahl_straftäter)
  29.     summe = sum(gesamt)
  30.     console = get_console()
  31.     table = Table(title="Normalisierte Kriminalitätsraten")
  32.  
  33.     for col in (
  34.         "Farbe",
  35.         "Population",
  36.         "Strafäter",
  37.         "Rel. (gesamt)",
  38.         "Rel. (normalisiert)",
  39.     ):
  40.         table.add_column(col)
  41.  
  42.     for farbe, anzahl, straftäter, rel_norm in zip(
  43.         farben, gesamt, anzahl_straftäter, ergebnis
  44.     ):
  45.         rel_gesamt = straftäter / summe
  46.         table.add_row(
  47.             f"{farbe.title()} Schafe",
  48.             f"{anzahl:>10}",
  49.             f"{straftäter:>10}",
  50.             f"{rel_gesamt:>7.1%}",
  51.             f"{rel_norm:>7.1%}",
  52.         )
  53.  
  54.     console.print(table)
  55.  
  56.  
  57. schwarze_schafe = 90
  58. weiße_schafe = 10
  59.  
  60. straftaten_schwarz = 5
  61. straftaten_weiß = 5
  62.  
  63. farben = ["schwarze", "weiße"]
  64. gesamt = [schwarze_schafe, weiße_schafe]
  65.  
  66. anzahl_straftäter = [straftaten_schwarz, straftaten_weiß]
  67. zeige_tabelle(farben, gesamt, anzahl_straftäter)
Advertisement
Comments
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment