Logisches UND und ODER

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PyPaiX
User
Beiträge: 10
Registriert: Dienstag 13. Oktober 2020, 00:44

Servus,

Ich habe angefangen Python zu lernen und bin ein kompletter Neuling, wenn es um das Programmieren geht.
Jetzt steht in meinem Textbuch zu Boolesche Werte, dass es ein Logisches UND und ODER gibt und ich verstehe es nicht ganz. Nach einer weile googlen ist UND ein * und ein ODER ein +.
Wenn jetzt True und False, laut Textbuch, als 1 und 0 definiert werden heißt es also, dass (hier hab ich Probleme)
>>> x and not y
True
also 1 * negiertes y, also wieder 0(?) = 1 ist, was keinen Sinn ergibt.
Kann mir da jemand helfen: Was bedeuten UND, ODER, NOT, warum macht mein Beispiel, welches ich aus dem Textbuch geholt habe momentan für mich keinen Sinn?

Danke :D
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Lös dich mal von der Darstellung der Zahlen.
Etwas kann True (wahr) oder False (falsch).

Code: Alles auswählen

>>> t = True
>>> f = False
>>> t
True
>>> t and f
False
>>> t and not f
True
Wandel das mal in Sprache:
"Ist t wahr" -> das ist wahr
Ist t wahr UND ist f wahr -> das ist falsch
Ist t wahr UND f NICHT wahr -> das ist wahr.
Benutzeravatar
__blackjack__
User
Beiträge: 14048
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PyPaiX: Bei dem Beispiel mit `x` und `y` hast Du vergessen uns zu verraten welche Werte `x` und `y` denn haben.

Wenn Du sagst UND ist * und ODER ist + dann sind damit nicht die Operationen * und + gemeint wie sie auf der Menge der ganzen Zahlen ℤ definiert sind, sondern nur, dass die vergleichbare Eigenschaften haben wie ein neutrales Element bezüglich der jeweiligen Operation und ähnliches. Siehe Ring (Algebra) für mehr Details.

Ringe, Körper, abel'sche Halbgruppen, und das ganze mathematische drumherum ist hier für das grundlegende Verständnis von boole'scher Algebra aber nicht wirklich wichtig. Die logischen Operatoren UND, ODER, und NICHT kann man zwar in der Programmierung (in fast allen Programmiersprachen) nicht ganz so verwenden wie man das umgangssprachlich tut, aber es ist schon ziemlich nahe dran. Da braucht man kein Mathematikgrundstudium für. 🙂
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
snafu
User
Beiträge: 6867
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

sparrow hat geschrieben: Dienstag 13. Oktober 2020, 08:10

Code: Alles auswählen

>>> t = True
>>> f = False
>>> t
True
>>> t and f
False
>>> t and not f
True
Wandel das mal in Sprache:
"Ist t wahr" -> das ist wahr
Ist t wahr UND ist f wahr -> das ist falsch
Ist t wahr UND f NICHT wahr -> das ist wahr.
Wobei da eigentlich keine Abfragen gemacht werden, sondern Aussagen.

Demnach kann man das auch so erklären:
t and f -> Wahr und Falsch -> Falsch
Grund: Es kann nicht etwas gleichzeitig wahr und falsch sein.

t and not f -> Wahr und nicht Falsch -> Wahr und Wahr -> Wahr
Doppeltes Wahr bleibt wahr. Nicht falsch wird zu Wahr.
(analog dazu würde nicht richtig zu Falsch werden)
Antworten