Lektion 1 von 9
Von der Geschäftsregel zum logischen Ausdruck
Du zerlegst Regeln aus Reglementen in Aussagen, übersetzt Grenzwerte wie 'ab' und 'über' exakt, verknüpfst mit UND, ODER und NICHT und setzt Klammern bewusst. Mehrdeutige Formulierungen klärst du mit gezielten Rückfragen.
Worum es geht
Ein Online-Shop für Haushaltsgeräte in St. Gallen hat eine einfache Regel: "Gratisversand ab CHF 50 oder für Treuekunden, aber nie bei Sperrgut." Jemand hat die Regel in die Shop-Software eingetragen, alle Tests mit kleinen Bestellungen waren grün. Drei Monate später fällt der Buchhaltung auf, dass der Shop Waschmaschinen und Kühlschränke gratis liefert. Jede dieser Lieferungen kostet den Betrieb über CHF 100 Transport. Eine Fehlermeldung gab es nie. Die Formel war gültig, sie hat nur etwas anderes gesagt als die Regel.
Genau darum geht es in diesem Modul. Hinter fast jeder Auswertung, jedem Filter und jeder Abfrage steckt eine Bedingung: Welche Kundinnen bekommen den Brief? Welche Rechnungen werden gemahnt? Welche Wohnungen verletzen das Reglement? Wenn du eine Bedingung falsch formulierst, merkst du das nicht an einer roten Meldung, sondern bestenfalls an einer Zahl, die nicht stimmt. Schlimmstenfalls merkst du es gar nicht.
Durch den ganzen Kurs begleitet dich Gian. Er ist im 2. Lehrjahr bei der Wohnbaugenossenschaft Sonnhalde in Winterthur, die rund 1'100 Wohnungen verwaltet. Die Geschäftsstelle will eine verlässliche Liste der Haushalte, die gegen das Vermietungsreglement verstossen. In dieser Lektion lernst du das Handwerkszeug für den ersten Schritt: einen Satz aus einem Reglement so in einen logischen Ausdruck übersetzen, dass Computer und Fachabteilung dasselbe darunter verstehen.
Aussagen: die kleinsten Bausteine
Eine Aussage ist ein Satz, der eindeutig wahr oder falsch ist. "Der Bestellbetrag ist mindestens CHF 50" ist eine Aussage: Für jede Bestellung kannst du nachschauen und mit Ja oder Nein antworten. "Ein grosser Bestellbetrag" ist keine Aussage, denn was gross ist, bleibt offen. Auch eine Frage oder ein Auftrag ("Prüfe den Betrag") ist keine Aussage.
| Satz | Aussage? | Warum |
|---|---|---|
| Die Wohnung hat 4.5 Zimmer. | ja | eindeutig prüfbar |
| Die Mietpartei ist über 70 Jahre alt. | ja | mit dem Geburtsdatum prüfbar |
| Die Wohnung ist eher gross. | nein | "eher gross" ist nicht definiert |
| Ist ein Härtefall bewilligt? | nein | eine Frage, aber leicht umformbar: "Ein Härtefall ist bewilligt." |
In der Datenanalyse sind Aussagen fast immer Vergleiche: Ein Feld wird mit einem Wert verglichen. Dafür gibt es sechs Vergleichsoperatoren. Die Schreibweise unterscheidet sich je nach Werkzeug ein wenig:
| Bedeutung | Mathematik | Excel | SQL | Python |
|---|---|---|---|---|
| gleich | = | = | = | == |
| ungleich | ≠ | <> | <> | != |
| kleiner | < | < | < | < |
| kleiner oder gleich | ≤ | <= | <= | <= |
| grösser | > | > | > | > |
| grösser oder gleich | ≥ | >= | >= | >= |
Die meisten Fehler passieren nicht beim Operator selbst, sondern beim Übersetzen der Umgangssprache. "Ab CHF 50" schliesst die 50 ein, "über CHF 50" nicht. Diese Wörter musst du genau lesen:
| Formulierung | Ausdruck | Grenzwert selbst |
|---|---|---|
| ab 50, mindestens 50 | betrag >= 50 | gehört dazu |
| über 50, mehr als 50 | betrag > 50 | gehört nicht dazu |
| bis 50, höchstens 50 | betrag <= 50 | gehört dazu |
| unter 50, weniger als 50 | betrag < 50 | gehört nicht dazu |
Ordne jeder Formulierung aus einem Reglement den passenden Ausdruck zu.
UND, ODER, NICHT
Aus einzelnen Aussagen baust du mit drei Verknüpfungen zusammengesetzte Bedingungen.
UND (Konjunktion) ist nur wahr, wenn alle Teile wahr sind. Für den Jugendtarif im Kino brauchst du ein Ticket UND einen Ausweis. Fehlt eines davon, kommst du nicht hinein.
ODER (Disjunktion) ist wahr, wenn mindestens ein Teil wahr ist. Am Kiosk kannst du mit Karte ODER mit TWINT bezahlen. Hast du beides dabei, ist das kein Problem. Dieses ODER heisst inklusives ODER, und es ist das ODER, das Excel, SQL und Python verwenden.
Im Alltag meinen wir manchmal etwas anderes: "Zum Menü gibt es Suppe oder Salat" heisst meist "entweder oder, aber nicht beides". Das ist das exklusive ODER (kurz XOR). Wenn ein Reglement so formuliert ist, musst du klären, welches ODER gemeint ist.
NICHT (Negation) kehrt den Wahrheitswert um. Aus "Sperrgut" wird "kein Sperrgut".
| Logik | Deutsch | Excel | SQL | Python |
|---|---|---|---|---|
| A ∧ B | A UND B | UND(A;B) | A AND B | a and b |
| A ∨ B | A ODER B | ODER(A;B) | A OR B | a or b |
| ¬A | NICHT A | NICHT(A) | NOT A | not a |
In pandas, der Python-Bibliothek für Tabellen, schreibst du dieselben Verknüpfungen mit den Zeichen &, | und ~. Das schauen wir uns in Lektion 9 genau an.
Achte besonders auf die Wörter "ausser", "aber nicht" und "ohne". Sie bedeuten fast immer UND NICHT. "Gratisversand, aber nie bei Sperrgut" heisst: (Gratis-Bedingung) UND NICHT Sperrgut.
Welcher der folgenden Sätze ist eine Aussage im Sinn der Logik, also für jeden einzelnen Datensatz eindeutig wahr oder falsch?
Rangfolge: warum Klammern über Geld entscheiden
Zurück zum Shop in St. Gallen. Die Regel enthält drei Aussagen:
- A: Betrag >= 50
- T: Treuekunde
- S: Sperrgut
Im System stand: A ODER T UND NICHT S. Wie wird das gelesen? Genau wie in der Mathematik "Punkt vor Strich" gilt, gibt es in der Logik eine feste Rangfolge:
- Klammern
- NICHT
- UND
- ODER
UND bindet also stärker als ODER, so wie Mal stärker bindet als Plus. Der Computer liest A ODER T UND NICHT S deshalb als A ODER (T UND NICHT S). Für eine Waschmaschine für CHF 890 (A wahr, T falsch, S wahr) heisst das: A ist wahr, also ist das ganze ODER wahr. Gratisversand. Der Teil mit dem Sperrgut wird nur bei Treuekunden überhaupt angeschaut.
Gemeint war aber: Zuerst wird entschieden, ob die Bestellung grundsätzlich gratis wäre (A ODER T), und dieses Ergebnis wird mit NICHT S eingeschränkt.
falsch: A ODER T UND NICHT S wird gelesen als A ODER (T UND NICHT S)
richtig: (A ODER T) UND NICHT SRechne beide Versionen für die Waschmaschine durch:
| Version | Rechnung | Ergebnis |
|---|---|---|
| ohne Klammern | wahr ODER (falsch UND falsch) = wahr ODER falsch | wahr, also gratis |
| mit Klammern | (wahr ODER falsch) UND falsch = wahr UND falsch | falsch, also kostenpflichtig |
Bei einer Kaffeemaschine für CHF 120 ohne Sperrgut liefern beide Versionen "gratis". Darum waren die Tests mit kleinen Bestellungen grün: Der Fehler zeigt sich nur in der Kombination "teuer und Sperrgut", und genau die hatte niemand getestet.
Ein Filter lautet A OR B AND C. Wie werten SQL und Python ihn aus, wenn keine Klammern gesetzt sind?
Mehrdeutige Formulierungen erkennen
Nicht jeder Fehler steckt in der Formel. Manchmal ist schon der Auftrag mehrdeutig. Gute Datenanalystinnen und -analysten erkennen solche Stellen, bevor sie etwas umsetzen, und klären sie mit der Fachabteilung.
"Alle Kunden aus Zürich und Bern." Wörtlich übersetzt: ort = 'Zürich' UND ort = 'Bern'. Ein Feld kann aber nicht gleichzeitig zwei Werte haben, die Liste wäre immer leer. Gemeint ist fast sicher: die Kunden aus Zürich und dazu die Kunden aus Bern, also ort = 'Zürich' ODER ort = 'Bern'. Das umgangssprachliche "und" zählt hier zwei Gruppen auf, es verlangt nicht beide Eigenschaften gleichzeitig.
"Lernende oder Mitarbeitende über 50 erhalten 5 Wochen Ferien." Bezieht sich "über 50" nur auf die Mitarbeitenden oder auch auf die Lernenden? Und heisst es im Personalreglement vielleicht "ab 50"? Dann wäre es >= 50, und eine Person mit genau 50 Jahren bekäme die fünfte Woche.
"Kein Rabatt für Aktionsartikel und Neukunden." Heisst das: Weder Aktionsartikel noch Neukunden bekommen Rabatt? Oder bekommen nur Neukunden, die einen Aktionsartikel kaufen, keinen? Beides ist sprachlich möglich, und die beiden Lesarten liefern sehr verschiedene Zahlen.
"Bis Ende März." Ist der 31. März eingeschlossen? Meist ja. Bei Zeitstempeln mit Uhrzeit wird datum <= '2026-03-31' aber zur Falle, weil der 31. März um 14 Uhr später ist als der 31. März um 0 Uhr.
Eine gute Rückfrage ist kurz und lässt sich mit einem Wort beantworten. Statt "Wie ist das gemeint?" fragst du mit einem konkreten Fall: "Eine Neukundin kauft einen normalen Artikel. Bekommt sie Rabatt, ja oder nein?"
Welche Formulierungen sind mehrdeutig und sollten vor der Umsetzung mit der Fachabteilung geklärt werden?
Wähle alle zutreffenden Antworten.
Schritt für Schritt: die Unterbelegungsregel der Sonnhalde
Im Vermietungsreglement der Sonnhalde steht: "Eine Wohnung gilt als unterbelegt, wenn sie mehr als ein Zimmer mehr hat als Personen darin wohnen, ausser die Mietpartei ist über 70 oder ein Härtefall ist bewilligt." So geht Gian vor:
Schritt 1: Den Satz in Aussagen zerlegen. Er unterstreicht alles, was für einen einzelnen Haushalt wahr oder falsch sein kann:
- Z: "mehr als ein Zimmer mehr als Personen"
- A: "die Mietpartei ist über 70"
- H: "ein Härtefall ist bewilligt"
Schritt 2: Jede Aussage als Vergleich mit Feldern schreiben.
- Z:
zimmer - personen > 1 - A:
alter > 70 - H:
haertefall = 'ja'
Schritt 3: Die Struktur erkennen. "ausser" bedeutet UND NICHT. Die Ausnahme selbst ist ein ODER: A ODER H. Zusammen: Z UND NICHT (A ODER H).
Schritt 4: Klammern prüfen. Ohne Klammern um A ODER H würde Z UND NICHT A ODER H gelesen als (Z UND NICHT A) ODER H. Dann wäre jeder Härtefall automatisch unterbelegt, also genau das Gegenteil der Ausnahme. Die Klammern bleiben.
Schritt 5: Grenzwerte durchrechnen. Schweizer Wohnungen haben oft halbe Zimmer. Gian prüft drei Fälle:
| Wohnung | Zimmer | Personen | Zimmer minus Personen | Z |
|---|---|---|---|---|
| 3.5 Zimmer, Paar | 3.5 | 2 | 1.5 | wahr |
| 4 Zimmer, 3 Personen | 4 | 3 | 1 | falsch |
| 4.5 Zimmer, Familie mit 2 Kindern | 4.5 | 4 | 0.5 | falsch |
Genau ein Zimmer mehr ist also nicht unterbelegt. Hier stutzt Gian: "Mehr als ein Zimmer mehr" könnte jemand auch als "mindestens ein Zimmer mehr" lesen. Dann wäre die 4-Zimmer-Wohnung mit 3 Personen unterbelegt, und die Liste würde viel länger.
Schritt 6: Rückfrage stellen. Er schreibt der Leiterin Vermietung: "Eine 4-Zimmer-Wohnung mit 3 Personen: unterbelegt, ja oder nein?" Antwort: "Nein, erst ab 1.5 Zimmern Überschuss." Seine Lesart > 1 ist bestätigt, und er legt die Mail im Projektordner ab.
Schritt 7: Die Regel als Code festhalten und testen. Damit die Regel nicht nur auf Papier existiert, schreibt Gian sie als kleine Python-Funktion:
def unterbelegt(zimmer, personen, alter, haertefall):
"""Prüft die Unterbelegungsregel aus dem Vermietungsreglement."""
zu_viele_zimmer = zimmer - personen > 1 # Z
ausnahme = alter > 70 or haertefall # A ODER H
return zu_viele_zimmer and not ausnahme # Z UND NICHT (A ODER H)
# Testfälle mit erwartetem Ergebnis im Kommentar
print(unterbelegt(3.5, 2, 45, False)) # True: 1.5 Zimmer zu viel, keine Ausnahme
print(unterbelegt(4, 3, 45, False)) # False: genau 1 Zimmer mehr
print(unterbelegt(5.5, 1, 82, False)) # False: über 70
print(unterbelegt(5.5, 1, 70, False)) # True: genau 70 ist nicht "über 70"
print(unterbelegt(5.5, 1, 50, True)) # False: Härtefall bewilligtDie Hilfsvariablen zu_viele_zimmer und ausnahme sind kein Luxus. Jede entspricht einer Aussage aus dem Reglement, und die letzte Zeile liest sich fast wie der Satz im Reglement. So kann auch die Leiterin Vermietung nachvollziehen, was der Code tut. Die Testfälle decken jede Aussage und jeden Grenzwert mindestens einmal ab.
Jetzt du: Im Labor korrigierst du die Gratisversand-Regel des Shops. Die Tests prüfen auch die Grenzfälle.
Labor: Gratisversand korrekt umsetzen
Im Shop gilt: Gratisversand ab CHF 50 oder für Treuekunden, aber nie bei Sperrgut.
Die Funktion gratisversand(betrag, treue, sperrgut) soll True liefern, wenn die Bestellung gratis versendet wird. betrag ist eine Zahl in CHF, treue und sperrgut sind True oder False.
Die vorbereitete Zeile enthält genau den Fehler aus dem Shop. Korrigiere sie, sodass alle Tests grün werden. Die Tests prüfen auch den Grenzwert CHF 50.00 und teure Sperrgut-Bestellungen.
Typische Fehler
- Klammern weglassen.
A ODER B UND NICHT Cwird alsA ODER (B UND NICHT C)gelesen. Korrektur: Bei gemischtem UND und ODER immer klammern. - Grenzwert falsch übersetzt. "ab 50" als
> 50geschrieben, und Bestellungen über genau CHF 50.00 fallen heraus. Korrektur: Für jede Grenze die Tabelle "ab, über, bis, unter" anwenden und den Grenzwert selbst testen. - Umgangssprachliches "und" als UND übersetzt. "Kunden aus Zürich und Bern" mit
ort = 'Zürich' AND ort = 'Bern'ergibt eine leere Liste. Korrektur: Geht es um zwei Gruppen im selben Feld, ist ODER gemeint. - "ausser" falsch platziert. "ausser A oder B" wird zu
UND NICHT A ODER Bstatt zuUND NICHT (A ODER B). Korrektur: Die ganze Ausnahme in Klammern setzen und als Ganzes verneinen. - Annahmen statt Rückfragen. Eine mehrdeutige Regel wird nach Gefühl umgesetzt. Korrektur: Mit einem konkreten Fall nachfragen und die Antwort dokumentieren.
Zusammenfassung
- Eine Aussage ist eindeutig wahr oder falsch. In der Datenanalyse ist sie meist ein Vergleich wie
betrag >= 50. - "ab" und "bis" schliessen den Grenzwert ein, "über" und "unter" nicht.
- UND ist wahr, wenn alle Teile wahr sind; ODER, wenn mindestens einer wahr ist; NICHT kehrt um. "ausser" und "aber nicht" bedeuten UND NICHT.
- Rangfolge: Klammern, NICHT, UND, ODER. Bei gemischtem UND und ODER setzt du immer Klammern.
- Mehrdeutige Formulierungen klärst du mit einer Rückfrage an einem konkreten Fall, bevor du etwas umsetzt.
- Zerlege jede Regel zuerst in benannte Aussagen (Z, A, H), dann baust du den Ausdruck und testest jeden Grenzwert.
Mit deiner eigenen KI vertiefen
Kopiere einen Prompt in Claude, ChatGPT oder Claude Code. Er macht die KI zur Lernbegleitung statt zum Lösungsautomaten.
Sokratischer Coach für Geschäftsregeln Chat-KI
Du übst, Regeln selbst in logische Ausdrücke zu übersetzen. Die KI stellt Fragen und gibt Hinweise, statt dir die Lösung zu liefern.