Bedingungen mit not
Warum brauchen wir das?
Manchmal denkst du in Negationen:
- wenn nicht fertig
- wenn kein Ticket
- wenn Passwort nicht stimmt
- wenn die Tür nicht offen ist
Statt nur „wenn ja …“ brauchst du oft „wenn nicht …“. Dafür: not.
Definition: not
Definition – not:
notkehrt einen Wahrheitswert um:
not True→False,not False→True.
print(not True) # False
print(not False) # True
print(not (3 > 5)) # True, weil 3>5 False ist
Wahrheitstabelle (ein Operand)
| A | not A |
|---|---|
| True | False |
| False | True |
Nur zwei Zeilen – einfach, aber mächtig.
Beispiele
tuer_offen = False
if not tuer_offen:
print("Bitte Tuer oeffnen.")
antwort = input("Fertig? (ja/nein) ").strip().lower()
if not antwort == "ja":
print("Dann lass uns weiter machen.")
Oft lesbarer alternativ:
if antwort != "ja":
print("Dann lass uns weiter machen.")
Beide Ideen kennen ist gut – wähle die klarere Form.
Py: „not ist ein Schalter: an wird aus, aus wird an.“
Lily: „Manchmal ist != freundlicher für den Leser.“
Buggy stapelt not not not und verliert den Überblick.
Neue Wörter
Logische Verneinung: dreht True/False um.
Das Umkehren einer Aussage: nicht wahr / nicht falsch.
Was passiert im Computer?
- Python wertet den Ausdruck rechts von
notzu True/False aus. notliefert das Gegenteil.- Das Ergebnis steuert z. B. ein
if.
hat_ticket = False
darf_rein = not hat_ticket # True – „kein Ticket“ ist hier nur Demo-Logik
print(darf_rein)
(In echten Regeln wäre „kein Ticket“ eher Absage – die Logik bestimmst du!)
Häufige Fallen
| Falle | Besser |
|---|---|
zu viele not stapeln | umformulieren, bis es klar ist |
not x == y unleserlich | oft x != y |
| Doppelpunkt bei if vergessen | if not fertig: |
not ohne Klammern bei komplexen Ausdrücken | bei Bedarf (...) setzen |
# oft klarer:
if name != "gast":
print("Hallo Mitglied")
# statt:
if not name == "gast":
print("Hallo Mitglied")
Beide können dasselbe tun – Lesbarkeit zählt.
Probiere es selbst
Experiment 1
print(not 2 == 2) # False
print(not 2 == 3) # True
Experiment 2 – Schlüssel
hat_key = False
if not hat_key:
print("Schluessel holen!")
Experiment 3 – Vergleich der Formen
a = 5
b = 7
print(not a == b)
print(a != b)
Experiment 4 – fertig?
fertig = input("Fertig? (ja/nein) ").strip().lower()
if not fertig == "ja":
print("Weiter geht's")
else:
print("Super, geschafft!")
Fehlerdetektiv
x = 3
if not x == 5:
print("nicht fuenf")
Loesung anzeigen
Funktioniert, aber oft klarer:
if x != 5:
print("nicht fuenf")
Übungen
Level 1 – Entdecken
Was ist not False und not (10 < 3)?
Loesung
print(not False) # True
print(not (10 < 3)) # True
Level 2 – Anwenden
licht_an = True. Wenn nicht an, Meldung „Licht einschalten“.
Loesung
licht_an = True
if not licht_an:
print("Licht einschalten")
else:
print("Licht ist an")
Level 3 – Erweitern
Passwort-Check: wenn Eingabe nicht "club" (nach strip/lower), Absage,
sonst Willkommen.
Loesung
pw = input("Passwort: ").strip().lower()
if not pw == "club":
print("Zugang verweigert")
else:
print("Willkommen")
# oder: if pw != "club":
Mini-Challenge
Baue einen Status-Check mit bool-Variable bereit.
Wenn nicht bereit → Motivationssatz, sonst Start.
Erkläre: Wann ist != besser als not ... ==?
Zusammenfassung
notdreht True ↔ False.- Nützlich für „wenn nicht …“.
- Oft ist
!=lesbarer alsnot ... ==. - Nicht zu viele Negationen stapeln.
- Wahrheitstabelle: nur zwei Zeilen, aber zentral.
Mini-Quiz
- Was macht
not? - Was ist oft die Alternative zu
not x == y? - Was ist
not False?
Loesungen
- Es kehrt einen Wahrheitswert um.
x != y.- True.
not sitzt! Als Nächstes: komplexe Bedingungen lesbar schreiben.