===== 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]]