Einführung
Der boolesche Datentyp kann einer von zwei Werten sein, entwederTrue oderFalse. Wir verwenden Boolesche Werte in der Programmierung, um Vergleiche anzustellen und den Programmfluss zu steuern.
Boolesche Werte stellen die Wahrheitswerte dar, die dem logischen Zweig der Mathematik zugeordnet sind, der Algorithmen in der Informatik informiert. Das nach dem Mathematiker George Boole benannte Wort Boolean beginnt immer mit einem großgeschriebenen B. Die WerteTrue
undFalse
werden ebenfalls immer mit einem Großbuchstaben T bzw. F angegeben, da es sich in Python um spezielle Werte handelt.
In diesem Lernprogramm werden die Grundlagen erläutert, die Sie benötigen, um die Funktionsweise von Booleschen Werten zu verstehen, einschließlich boolescher Vergleichs- und logischer Operatoren sowie Wahrheitstabellen.
Vergleichsoperatoren
Bei der Programmierung werden Vergleichsoperatoren verwendet, um Werte zu vergleichen und bis zu einem einzelnen Booleschen Wert von True oder False auszuwerten.
Die folgende Tabelle zeigt Boolesche Vergleichsoperatoren.
Operator | Was es bedeutet |
---|---|
== |
Gleicht |
!= |
Nicht gleichzusetzen mit |
< |
Weniger als |
> |
Größer als |
⇐ |
Weniger als oder gleich |
>= |
Größer als oder gleich wie |
Um zu verstehen, wie diese Operatoren funktionieren, weisen wir in einem Python-Programm zwei Ganzzahlen zwei Variablen zu:
x = 5
y = 8
Wir wissen, dass in diesem Beispielx
den Wert5
hat und weniger alsy
den Wert8
hat.
Gehen wir mit diesen beiden Variablen und ihren zugehörigen Werten die Operatoren aus der obigen Tabelle durch. In unserem Programm werden wir Python bitten, auszudrucken, ob jeder Vergleichsoperator entweder True oder False ergibt. Um uns und anderen Menschen zu helfen, diese Ausgabe besser zu verstehen, wird Python auch einstring drucken, um uns zu zeigen, was es auswertet.
x = 5
y = 8
print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)
Outputx == y: False
x != y: True
x < y: True
x > y: False
x <= y: True
x >= y: False
Nach mathematischer Logik hat Python in jedem der obigen Ausdrücke ausgewertet:
-
Ist 5 (
x
) gleich 8 (y
)? False -
Ist 5 ungleich 8? True
-
Ist 5 weniger als 8? True
-
Ist 5 größer als 8? False
-
Ist 5 kleiner oder gleich 8? True
-
Ist 5 nicht kleiner oder gleich 8? False
Obwohl wir hier Ganzzahlen verwendet haben, könnten wir sie durch Float-Werte ersetzen.
Zeichenfolgen können auch mit Booleschen Operatoren verwendet werden. Sie unterscheiden zwischen Groß- und Kleinschreibung, es sei denn, Sie setzen zusätzlichestring methodein.
Wir können uns ansehen, wie Zeichenfolgen in der Praxis verglichen werden:
Sammy = "Sammy"
sammy = "sammy"
print("Sammy == sammy: ", Sammy == sammy)
OutputSammy == sammy: False
Die obige Zeichenfolge"Sammy"
ist nicht gleich der Zeichenfolge"sammy"
, da sie nicht genau gleich sind. einer beginnt mitS
in Großbuchstaben und der andere mits
in Kleinbuchstaben. Wenn wir jedoch eine andere Variable hinzufügen, der der Wert"Sammy"
zugewiesen ist, werden sie gleich bewertet:
Sammy = "Sammy"
sammy = "sammy"
also_Sammy = "Sammy"
print("Sammy == sammy: ", Sammy == sammy)
print("Sammy == also_Sammy", Sammy == also_Sammy)
OutputSammy == sammy: False
Sammy == also_Sammy: True
Sie können auch die anderen Vergleichsoperatoren einschließlich>
und<
verwenden, um zwei Zeichenfolgen zu vergleichen. Python vergleicht diese Zeichenfolgen lexikografisch mit den ASCII-Werten der Zeichen.
Wir können auch Boolesche Werte mit Vergleichsoperatoren auswerten:
t = True
f = False
print("t != f: ", t != f)
Outputt != f: True
Der obige Codeblock bewertete, dassTrue
nicht gleichFalse
ist.
Beachten Sie den Unterschied zwischen den beiden Operatoren=
und==
.
x = y # Sets x equal to y
x == y # Evaluates whether x is equal to y
Das erste=
ist der Zuweisungsoperator, der einen Wert gleich einem anderen setzt. Das zweite==
ist ein Vergleichsoperator, der bewertet, ob zwei Werte gleich sind.
Logische Operatoren
Es gibt drei logische Operatoren, mit denen Werte verglichen werden. Sie werten Ausdrücke bis auf Boolesche Werte aus und geben entwederTrue
oderFalse
zurück. Diese Operatoren sindand
,or
undnot
und sind in der folgenden Tabelle definiert.
Operator | Was es bedeutet | Wie es aussieht |
---|---|---|
and |
Richtig, wenn beide wahr sind |
|
or |
Wahr, wenn mindestens einer wahr ist |
|
not |
Richtig nur wenn falsch |
|
Logische Operatoren werden normalerweise verwendet, um zu bewerten, ob zwei oder mehr Ausdrücke wahr sind oder nicht. Sie können beispielsweise verwendet werden, um zu bestimmen, ob die Noteand besteht, dass der Student im Kurs registriert ist. Wenn beide Fälle zutreffen, wird dem Studenten eine Note im System zugewiesen. Ein anderes Beispiel wäre zu bestimmen, ob ein Benutzer ein gültiger aktiver Kunde eines Online-Shops ist, basierend darauf, ob er über ein Guthaben verfügt, dasorin den letzten 6 Monaten gekauft haben.
Um zu verstehen, wie logische Operatoren funktionieren, werden drei Ausdrücke ausgewertet:
print((9 > 7) and (2 < 4)) # Both original expressions are True
print((8 == 8) or (6 != 6)) # One original expression is True
print(not(3 <= 1)) # The original expression is False
OutputTrue
True
True
Im ersten Fall musstenprint((9 > 7) and (2 < 4))
, sowohl9 > 7
als auch2 < 4
als True ausgewertet werden, da der Operatorand
verwendet wurde.
Im zweiten Fall,print((8 == 8) or (6 != 6))
, da8 == 8
als wahr ausgewertet wurde, machte es keinen Unterschied, dass6 != 6
als falsch ausgewertet wurde, da der Operatoror
verwendet wurde. Wenn wir den Operatorand
verwendet hätten, würde dies zu False ausgewertet.
Im dritten Fall,print(not(3 <= 1))
, negiert der Operatornot
den False-Wert, den3 <=1
zurückgibt.
Ersetzen wir ganze Zahlen durch Gleitkommazahlen und zielen auf falsche Auswertungen ab:
print((-0.2 > 1.4) and (0.8 < 3.1)) # One original expression is False
print((7.5 == 8.9) or (9.2 != 9.2)) # Both original expressions are False
print(not(-5.7 <= 0.3)) # The original expression is True
Im obigen Beispiel
-
and
muss mindestens einen False-Ausdruck haben, der als False ausgewertet wird. -
Bei
or
müssen beide Ausdrücke zu False ausgewertet werden. -
not
muss seinen inneren Ausdruck True haben, damit der neue Ausdruck False ergibt.
Wenn Ihnen die obigen Ergebnisse unklar erscheinen, werden wir einigetruth tables unten durchgehen, um Sie auf den neuesten Stand zu bringen.
Sie können zusammengesetzte Anweisungen auch mitand
,or
undnot
schreiben:
not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))
Schauen wir uns zuerst den innersten Ausdruck an:(0.8 < 3.1) or (0.1 == 0.1)
. Dieser Ausdruck ergibt True, da beide mathematischen Aussagen True sind.
Jetzt können wir den zurückgegebenen WertTrue
nehmen und ihn mit dem nächsten inneren Ausdruck kombinieren:(-0.2 > 1.4) and (True)
. In diesem Beispiel wirdFalse
zurückgegeben, da die mathematische Anweisung-0.2 > 1.4
False ist und(False) and (True)
False zurückgibt.
Schließlich haben wir den äußeren Ausdruck:not(False)
, der True ergibt. Der endgültige Rückgabewert, wenn wir diese Anweisung ausdrucken, lautet also:
OutputTrue
Die logischen Operatorenand
,or
undnot
werten Ausdrücke aus und geben boolesche Werte zurück.
Wahrheitstabellen
Es gibt viel zu lernen über den logischen Zweig der Mathematik, aber wir können einige davon selektiv lernen, um unser algorithmisches Denken beim Programmieren zu verbessern.
Nachfolgend finden Sie Wahrheitstabellen für den Vergleichsoperator==
und jeden der Logikoperatorenand
,or
undnot
. Möglicherweise können Sie sie auch ausdrücken, aber es kann auch hilfreich sein, sie auswendig zu lernen, um Ihren Programmierentscheidungsprozess zu beschleunigen.
== Wahrheitstabelle
x | == | y | Kehrt zurück |
---|---|---|---|
True |
== |
True |
True |
True |
== |
Falsch |
Falsch |
Falsch |
== |
True |
Falsch |
Falsch |
== |
Falsch |
True |
UND Wahrheitstabelle
x | and | y | Kehrt zurück |
---|---|---|---|
True |
and |
True |
True |
True |
and |
Falsch |
Falsch |
Falsch |
and |
True |
Falsch |
Falsch |
and |
Falsch |
Falsch |
ODER Wahrheitstabelle
x | or | y | Kehrt zurück |
---|---|---|---|
True |
or |
True |
True |
True |
or |
Falsch |
True |
Falsch |
or |
True |
True |
Falsch |
or |
Falsch |
Falsch |
NICHT Wahrheitstabelle
not | x | Kehrt zurück |
---|---|---|
not |
True |
Falsch |
not |
Falsch |
True |
Wahrheitstabellen sind gebräuchliche mathematische Tabellen, die in der Logik verwendet werden und nützlich sind, um sich bei der Erstellung von Algorithmen (Anweisungen) in der Computerprogrammierung zu merken oder diese zu berücksichtigen.
Verwenden von Booleschen Operatoren zur Flusssteuerung
Um den Stream und die Ergebnisse eines Programms in Form von Flusssteuerungsanweisungen zu steuern, können wircondition gefolgt vonclause verwenden.
Acondition wird bis zu einem Booleschen Wert von True oder False ausgewertet und zeigt einen Punkt an, an dem im Programm eine Entscheidung getroffen wird. Das heißt, eine Bedingung würde uns mitteilen, ob etwas mit Wahr oder Falsch bewertet wird.
clause ist der Codeblock, der aufcondition folgt und das Ergebnis des Programms bestimmt. Das heißt, es ist derdo this-Teil der Konstruktion. "Wennx
wahr ist, dann tun Sie dies."
Der folgende Codeblock zeigt ein Beispiel für Vergleichsoperatoren, die zusammen mitconditional statements arbeiten, um den Fluss eines Python-Programms zu steuern:
if grade >= 65: # Condition
print("Passing grade") # Clause
else:
print("Failing grade")
Dieses Programm bewertet, ob die Note jedes Schülers bestanden wird oder nicht. Bei einem Schüler mit einer Note von 83 wird die erste Anweisung mitTrue
bewertet, und die Druckanweisung mitPassing grade
wird ausgelöst. Im Fall eines Schülers mit einer Note von 59 wird die erste Anweisung mitFalse
bewertet, sodass das Programm die Druckanweisung ausführt, die an den Ausdruckelse
gebunden ist:Failing grade
.
Da jedes einzelne Objekt in Python als wahr oder falsch ausgewertet werden kann, empfiehltPEP 8 Style Guide, einen Wert nicht mitTrue
oderFalse
zu vergleichen, da es weniger lesbar ist und häufig einen unerwarteten Booleschen Wert zurückgibt. Das heißt, Sie solltenavoid mitif sammy == True:
in Ihren Programmen verwenden. Vergleichen Sie stattdessensammy
mit einem anderen nicht-booleschen Wert, der einen booleschen Wert zurückgibt.
Boolesche Operatoren stellen Bedingungen dar, anhand derer das endgültige Ergebnis eines Programms über Flusssteuerungsanweisungen entschieden werden kann.
Fazit
In diesem Lernprogramm wurden Vergleichsoperatoren und logische Operatoren des Booleschen Typs sowie Wahrheitstabellen und die Verwendung von Booleschen Operatoren für die Programmflusssteuerung behandelt.
Weitere Informationen zu anderen Datentypen finden Sie in unserem Lernprogramm „https://www.digitalocean.com/community/tutorials/understanding-data-types-in-python-3[Understanding Data Types]“. Außerdem finden Sie Informationen zu bedingten Anweisungen in unserem Tutorial „https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-python-3-2[How To Write Conditional Statements].