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 (man muss ich eigentlich nur merken, dass or
wie in der Mathematik nicht entweder-oder bedeutet.
Logisches UND
/AND
:
and | True | False |
---|---|---|
True | True | False |
False | False | False |
Logisches ODER
/OR
:
or | True | False |
---|---|---|
True | True | True |
False | True | False |
Logisches NICHT
/NOT
:
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 != bindet staerker als =. # 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)
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))