This is an old revision of the document!
Boolesche Werte und Variablen
Die Wahrheitswerte wahr
oder falsch
bzw. auf Englisch und in Python True
oder False
werden auch als Boolesche Werte (nach George Boole) bezeichnet.
Boolesche Werte kann man mit den logischen Verknüpfungen and
, or
, not
kombinieren: Die Verknüpfungen sind durch die folgenden Tabellen definiert (genau wie in der mathematischen Logik; beachte True or True = True).
Logisches und
/and
(Konjunktion):
and | True | False |
---|---|---|
True | True | False |
False | False | False |
Logisches oder
/or
(Disjunktion):
or | True | False |
---|---|---|
True | True | True |
False | True | False |
Logisches nicht
/not
(Negation, Verneinung):
x | True | False |
---|---|---|
not x | False | True |
Eine Variable, die als Wert True
oder False
hat, wird als Boolesche Variable bezeichnet (englisch boolean).
Vergleiche liefern Boolesche Werte:
==
: gleich für Gleichheit; beispielsweise hat2==5
den WertFalse
Achtung: Das einzelne Zeichen
=
ist beim Programmieren ein Zuweisungszeichen und kein Gleichheitszeichen wie in der Mathematik!!=
: ungleich für Ungleichheit;a != b
undnot (a != b)
haben dieselbe Bedeutung<
,<=
,>
,>=
: kleiner, kleiner-gleich, grösser, grösser-gleich
Welche Ausgaben erwartest du bei dem folgenden Programm? Erst denken, dann testen!
print(True and False) print(2 < 5) print((235236235 < 2346346) or True) a = (5 != 6) # a ist eine Boolesche Variable # Es ist erlaubt, hier die Klammern wegzulassen, denn das Vergleichszeichen != bindet staerker als das Zuweisungszeichen =. # Klammern verbessern aber oft die Lesbarkeit und dienen der Fehlervermeidung. # (Nur als Vielprogrammierer wird man sich genau merken können, was staerker bindet.) print(a) b = not (False or (True and (2<5))) print(b) print(True == (False or True)) print((2<3) == (-1<0))
Das folgende Programm bestästigt die obigen Tabellen (dass man die Laufvariable einer Schleife auch über eine Liste wie [True, False]
laufen lassen kann, ist eigentlich noch unbekannt):
for x in [True, False]: for y in [True, False]: print("%-5s and %-5s ergibt %-5s" % (x, y, x and y)) print("") for x in [True, False]: for y in [True, False]: print("%-5s or %-5s ergibt %-5s" % (x, y, x or y)) print("") for x in [True, False]: print("not %-5s ergibt %-5s" % (x, not x))