lehrkraefte:snr:informatik:python:boolsche-werte

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:snr:informatik:python:boolsche-werte [2021/09/22 12:38] – [Boolesche Werte und Variablen] Olaf Schnürerlehrkraefte:snr:informatik:python:boolsche-werte [2022/01/11 19:41] (current) – [Boolesche Werte und Variablen] Olaf Schnürer
Line 1: Line 1:
 +===== Boolesche Werte und Variablen =====
 +
 +<WRAP round info>
 +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.
 +<WRAP group>
 +
 +<WRAP third column>
 +
 +Logisches ''und''/''and'' (Konjunktion):
 +<WRAP round box 60%>
 +|and ^ True ^ False ^
 +^ True | True | False |
 +^ False | False | False |
 +</WRAP>
 +
 +</WRAP>
 +
 +<WRAP third column>
 +
 +Logisches ''oder''/''or'' (Disjunktion):
 +<WRAP round box 60%>
 +|or ^ True ^ False ^
 +^ True | True | True |
 +^ False | True | False |
 +</WRAP>
 +
 +</WRAP>
 +
 +<WRAP third column>
 +
 +Logisches ''nicht''/''not'' (Negation, Verneinung):
 +<WRAP round box 50%>
 +| x ^ True ^ False ^
 +| not x | False | True |
 +</WRAP>
 +
 +</WRAP>
 +
 +</WRAP>
 +
 +Eine Variable, die als Wert ''True'' oder ''False'' hat, wird als **Boolesche Variable** bezeichnet (englisch //boolean//).
 +
 +</WRAP>
 +
 +<WRAP round info>
 +Vergleiche liefern Boolesche Werte:
 +  * ''=='': gleich für Gleichheit; beispielsweise hat ''2==5'' den Wert ''False'' <WRAP right round important 50%>
 +Achtung: Das einzelne Zeichen ''='' ist beim Programmieren ein Zuweisungszeichen und kein Gleichheitszeichen wie in der Mathematik!
 +</WRAP>
 +  * ''!='': ungleich für Ungleichheit; ''a != b'' und ''not (a == b)'' haben dieselbe Bedeutung
 +  * ''<'', ''<nowiki><=</nowiki>'', ''>'', ''>='': kleiner, kleiner-gleich, grösser, grösser-gleich
 +</WRAP>
 +
 +<WRAP round todo>
 +Welche Ausgaben erwartest du bei dem folgenden Programm? Erst denken, dann testen!
 +<code python>
 +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.
 +</code>
 +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. 
 +</WRAP>
 +
 +===== Link zur Kursseite =====
 +
 +[[lehrkraefte:snr:informatik:glf21|Zur Kursseite]]
 +