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
Next revision
Previous revision
lehrkraefte:snr:informatik:python:boolsche-werte [2021/09/13 17:34]
Olaf Schnürer
lehrkraefte:snr:informatik:python:boolsche-werte [2022/01/11 20:41] (current)
Olaf Schnürer [Boolesche Werte und Variablen]
Line 4: Line 4:
 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.  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 (man muss ich eigentlich nur merken, dass ''or'' wie in der Mathematik **nicht** //entweder-oder// bedeutet.+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 group>
  
 <WRAP third column> <WRAP third column>
  
-Logisches ''UND''/''AND'':+Logisches ''und''/''and'' (Konjunktion):
 <WRAP round box 60%> <WRAP round box 60%>
 |and ^ True ^ False ^ |and ^ True ^ False ^
Line 20: Line 22:
 <WRAP third column> <WRAP third column>
  
-Logisches ''ODER''/''OR'':+Logisches ''oder''/''or'' (Disjunktion):
 <WRAP round box 60%> <WRAP round box 60%>
 |or ^ True ^ False ^ |or ^ True ^ False ^
Line 31: Line 33:
 <WRAP third column> <WRAP third column>
  
-Logisches ''NICHT''/''NOT'':+Logisches ''nicht''/''not'' (Negation, Verneinung):
 <WRAP round box 50%> <WRAP round box 50%>
 | x ^ True ^ False ^ | x ^ True ^ False ^
Line 47: Line 49:
 <WRAP round info> <WRAP round info>
 Vergleiche liefern Boolesche Werte: Vergleiche liefern Boolesche Werte:
-  * ''=='': gleich für Gleichheit; beispielsweise hat ''2==5'' den Wert ''False'' <WRAP right round important 60%>+  * ''=='': 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! Achtung: Das einzelne Zeichen ''='' ist beim Programmieren ein Zuweisungszeichen und kein Gleichheitszeichen wie in der Mathematik!
 </WRAP> </WRAP>
- +  * ''!='': ungleich für Ungleichheit; ''a != b'' und ''not (a == b)'' haben dieselbe Bedeutung 
-  * ''!='': ungleich für Ungleichheit; ''a != b'' und ''not (a != b)'' haben dieselbe Bedeutung +  * ''<'', ''<nowiki><=</nowiki>'', ''>'', ''>='': kleiner, kleiner-gleich, grösser, grösser-gleich
-  * ''<'', ''<nowiki><=</nowiki>'', ''>'', ''>='': kleiner, kleiner-gleich, grösser, grösser-gleich  +
 </WRAP> </WRAP>
- 
- 
  
 <WRAP round todo> <WRAP round todo>
Line 63: Line 62:
 print(2 < 5) print(2 < 5)
 print((235236235 < 2346346) or True) print((235236235 < 2346346) or True)
- 
  
 a = (5 != 6)   a = (5 != 6)  
 # a ist eine Boolesche Variable # a ist eine Boolesche Variable
-# Es ist erlaubt, hier die Klammern wegzulassen, denn != bindet staerker als =.+# 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. # Klammern verbessern aber oft die Lesbarkeit und dienen der Fehlervermeidung.
 # (Nur als Vielprogrammierer wird man sich genau merken können, was staerker bindet.) # (Nur als Vielprogrammierer wird man sich genau merken können, was staerker bindet.)
 print(a) print(a)
  
-b = not (False or (True and (2<5)))+b = not (False or (True and (2 < 5)))
 print(b) 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> </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> </WRAP>
  
-<WRAP round todo> +===== Link zur Kursseite =====
-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): +
-<code python> +
-for x in [True, False]: +
-    for y in [True, False]: +
-        print("%-5s and %-5s ergibt %-5s" % (x, y, x and y))+
  
-print(""+[[lehrkraefte:snr:informatik:glf21|Zur Kursseite]]
-         +
-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)) +
- +
-</code> +
-</WRAP>+
  
  
  • lehrkraefte/snr/informatik/python/boolsche-werte.1631547293.txt.gz
  • Last modified: 2021/09/13 17:34
  • by Olaf Schnürer