===== Boolesche Werte und Variablen =====
Die Wahrheitswerte ''wahr'' oder ''falsch'' bzw. auf Englisch und in Python ''True'' oder ''False'' werden auch als **Boolesche Werte** (nach [[https://de.wikipedia.org/wiki/George_Boole|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).
Achtung: Die Tabellen sind nur bei ausreichender Fensterbreite vernünftig lesbar.
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 hat ''2==5'' den Wert ''False''
Achtung: Das einzelne Zeichen ''='' ist beim Programmieren ein Zuweisungszeichen und kein Gleichheitszeichen wie in der Mathematik!
* ''!='': ungleich für Ungleichheit; ''a != b'' und ''not (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)
# Man kann auch Wahrheitswerte vergleichen
print(True != True)
print(True == (False or True))
print((2 < 3) == (-1 <= 0))
# Die Leerzeichen sind hier stets optional, dienen aber der besseren Lesbarkeit:
# print((2<3)==(-1<=0))
# hat dieselbe Bedeutung.
Zur Information: Intern wird ''True'' als ''1'' und ''False'' als ''0'' gespeichert, weswegen Ausdrücke wie ''print(True == 1)'' oder ''print(True > 42)'' fehlerfrei ausgeführt werden. Guter Programmierstil ist das aber nicht.
===== Link zur Kursseite =====
[[lehrkraefte:snr:informatik:glf21|Zur Kursseite]]