Grundlegendes zur Booleschen Logik in Python 3

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

x and y

or

Wahr, wenn mindestens einer wahr ist

x or y

not

Richtig nur wenn falsch

not x

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.

  • Beior 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].