[Python] Der Boolesche Operator (oder / und) gibt keinen Booleschen Wert zurück

In Python gibt es die Operatoren "oder", "und" und "nicht", aber diese werden als Boolesche Operatoren bezeichnet.

Wahrheitswert in Python

Jedes Objekt kann in Python als Wahrheitswert (wahr / falsch-Wert) dargestellt werden, und die folgenden integrierten Funktionen werden als falsch beurteilt.

Wenn die Klasse des Objekts die Methode "bool ()" definiert und "False" zurückgibt oder wenn sie die Methode "len ()" definiert und 0 zurückgibt, wird sie als falsch beurteilt. ..

Die eingebaute Funktion bool () wird zur Beurteilung verwendet.

>>> bool(None)
False
>>> bool(False)
False
>>> bool(0)
False
>>> bool("")
False
>>> bool([])
False
#Alles, was nicht falsch ist, ist wahr
>>> bool("0")
True
>>> bool([False])
True

Wie benutzt man oder

Es wird verwendet, wenn Sie feststellen möchten, ob entweder "A" oder "B" wahr ist. Natürlich kann es außerhalb der Steuerungssyntax verwendet werden, z. B. als if-Anweisung.

>>> x = True
>>> y = False
>>> x or y
True
>>> bool(x or y)
True

Übrigens geben "oder" und "und", die später beschrieben werden, keinen booleschen Wert zurück, sondern werten den Wert des verglichenen Objekts von links aus und geben ihn so zurück, wie er ist, wenn der Rückgabewert festgelegt ist.

Im obigen Beispiel (x oder y)

--Wenn x wahr ist, wird y nicht ausgewertet und x wird zurückgegeben (auch wenn y wahr ist, wird x zurückgegeben)

Es klappt

>>> a = 0 #Definieren Sie einen Wert, dessen Wahrheitswert True ist
>>> b = 1 #Definieren Sie einen Wert, dessen Wahrheitswert Falsch ist
>>> a or b #Da b True ist, wird b zurückgegeben
1
>>> b or a #Selbst wenn es umgekehrt ist, ist b True, also wird b zurückgegeben.
1

>>> b = "" #Weisen Sie einen anderen Wert zu als den, dessen Wahrheitswert Falsch ist
a or b #b wird zurückgegeben, weil a False ist
""

Übrigens, auch wenn zwei oder mehr oders verbunden sind, funktionieren sie auf die gleiche Weise und werden von links ausgewertet.

>>> a = 0
>>> b = 1
>>> c = 2
>>> a or b or c
1

Es ist leicht, sich einen Operator vorzustellen, der einen Wahrheitswert zurückgibt, aber nicht vergessen.

Wie benutzt man und

und können verwendet werden, wenn Sie feststellen möchten, ob sowohl A als auch B wahr sind.

Für und ist der Rückgabewert das auszuwertende Objekt, sodass kein Boolescher Wert zurückgegeben wird.

>>> x = 0
>>> y = 1
>>> x and y
0

Wie bei "oder" wird das Objekt zurückgegeben, wenn das Ergebnis bestätigt wird.

Es klappt.

Bitte beachten Sie, dass wir nicht streng überprüft haben, ob alle Vergleiche wahr sind, da falsche Objekte die Ergebnisse zurückgeben, sobald sie gefunden werden.

Zwei oder mehr können für "und" verbunden werden.

>>> a = 0
>>> b = 1
>>> c = 2
>>> a and b and c #Gibt a zurück, weil a falsch ist
0
>>> d = 10
>>> d and b and c #Wenn d wahr ist, b wahr ist und c bestätigt wird, wird das Ergebnis bestätigt, so dass c zurückgegeben wird.
2

Wie man nicht benutzt

not ist ein Operator, der die Negation darstellt und danach nur einen Wert annimmt, z. B. not False, und diesen Wert negiert.

Im Gegensatz zu den beiden oben beschriebenen Operatoren wird ein boolescher Wert zurückgegeben.

>>> x = 0
>>> y = 1
>>> not x #x ist ein Wert, der zu False wird. Wenn er nicht hinzugefügt wird, wird er zu True.
True
>>> not y #y ist ein Wert, der True ist. Wenn er nicht hinzugefügt wird, wird er zu False.
False

not hat eine höhere Priorität als oder und und und wird zuerst ausgewertet.

>>> a = 0
>>> b = 1
>>> c = 2
>>> not a and b and c #Falsch a wird verweigert und wird wahr und gibt das zuletzt ausgewertete Objekt c zurück, da alles wahr ist
c
>>> d = 10
>>> d and not b and c #Alles war wahr, aber b wird geleugnet und falsch, also wird b zurückgegeben
False

Obwohl es einfach ist, ist es leicht, den Rückgabewert zu vergessen, deshalb möchte ich ihn bewusst verwenden.

Recommended Posts

[Python] Der Boolesche Operator (oder / und) gibt keinen Booleschen Wert zurück
Die boolesche Python-Operation gibt keinen booleschen Wert zurück
[Einführung in Python] Verwendung des Booleschen Operators (und ・ oder ・ nicht)
Python-Bitoperator und logische Summe
Python oder und und Operatorfalle
[Python] gibt A [oder / und] B zurück
Der Rückgabewert der Python-Booleschen Operation ist nicht immer vom Bool-Typ
[Python of Hikari-] Kapitel 06-04 Funktionen (Argumente und Rückgabewerte 3)
[Python of Hikari-] Kapitel 06-02 Funktion (Argument und Rückgabewert 1)
[Python of Hikari-] Kapitel 06-03 Funktionen (Argumente und Rückgabewerte 2)
Python-Version wechselt nicht
Python, Ausbeute, Rückkehr und manchmal Ausbeute von
[Einführung in die Udemy Python3 + -Anwendung] 49. Funktionszitat und Rückgabewertdeklaration
Python / Numpy> Link> Unterschied zwischen numpy.random und random.random> threadsicher oder nicht
[Python] Grundlegendes Muster und Verwendung der if-Anweisung (Vergleichsoperator und Boolescher Operator)
Python gibt keine Fehler oder Ausgaben aus, nur weil der Einzug falsch ausgerichtet ist
Technisches Englisch> Sie verwenden die booleschen Operatoren [und, oder und nicht], um ...> Boolesche Operationen - und oder oder nicht
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Das Autopep8-Format [VScode] funktioniert nicht. [Python]
Verbinde viel Python oder und und
Kopieren Sie die Datei und schreiben Sie den Zellenwert @python neu
Virtualenv funktioniert nicht unter Python 3.5 (Windows)
Python> Python enthält nicht den letzten Offset
Nicht logische Operatorverwendung von oder in Python
Opencv4.1 + Windows10 + Python 3.7.5 cv2.VideoCapture wird nicht korrekt angezeigt
DL, Bytewert und Löschen der Datei in Python3
Jinja2 2.9.6 funktioniert nicht mit der Lambda Python 3-Serie
Python-Memo- "wenn nicht A und B" war "wenn (nicht A) und B"
[Python] Was verwendet werden sollte, return oder return None
[Python] Ausdruck (1,2) macht kein Taple mit Klammern
Es wäre klug, wenn Sie etwas wie Boolesches und "A" oder "B" schreiben könnten [Python] [Aber]