Die boolesche Python-Operation gibt keinen booleschen Wert zurück

Einführung

Können Sie die Ausgabe des folgenden Codes beantworten?

question_1.py


print('penguin' and 'PENGUIN')

image.png

Wenn die Antwort nicht "PINGUIN" lautet, können Sie diesen Artikel lesen.

Auswertung von Objekten in Python

Lassen Sie uns zunächst kurz Python-Objekte betrachten. In Python können alle Objekte als wahr oder falsch bewertet werden. Insbesondere werden die Objekte, die als falsch bewertet werden, auf Folgendes eingegrenzt (aus der Referenz zitiert).

Die oben genannten vier werden häufig verwendet, daher ist es zweckmäßig, sich an sie zu erinnern. Daher ist es in Python möglich, ein Objekt direkt einem bedingten Ausdruck zuzuweisen und wie folgt auszuwerten.

eval_obj.py


penguin_list = ['Emperor', 'Humboldt', 'Adelie']
if (penguin_list):
    print("Pinguin Festival")
else:
    print("Pinguin ist ausgestorben")
#Ausführungsergebnis:Pinguin Festival

or oder wird eine logische Summe genannt, und es ist üblich, true zurückzugeben, wenn x oder y wahr ist, wenn `` `x oder y``` wahr ist, und andernfalls false. Wie wir bereits gesehen haben, werden Objekte in Python als wahr oder falsch bewertet. Daher ist die folgende Auswertung möglich.

or_peugin.py


print('penguin' or None)

Normalerweise würde das oben Gesagte True zurückgeben, Python jedoch nicht. Das Ergebnis ist wie folgt.

Ausgabeergebnis


penguin

Tatsächlich gibt x oder y in Python x zurück, wenn die Auswertung von x True ist, andernfalls y. Kurz gesagt, __ Denkt wie eine normale logische Summenoperation und gibt das Objekt zurück, wenn der Wert fest ist. __ __ Hier sind einige Beispiele.

or_sample.py


print('Emperor' or 'Humboldt')
#Ausgabeergebnis: Kaiser
print('Humboldt' or 'Emperor')
#Ausgabeergebnis: Humboldt
print('penguin' or 0)
#Ausgabeergebnis: Pinguin
print(False or 'penguin')
#Ausgabeergebnis: Pinguin
print(0 or False)
#Ausgabeergebnis: False
print(False or 0)
#Ausgabeergebnis: 0

and Und wird das logische Produkt genannt, und es ist üblich, true zurückzugeben, wenn sowohl x als auch y wahr sind, wenn `` `x und y```, und andernfalls false. In Python ist der Rückgabewert jedoch kein Bool-Wert. In Python geben x und y x zurück, wenn x False ergibt, andernfalls y. Kurz gesagt, __ Denkt wie eine normale logische Produktoperation und gibt das Objekt zurück, wenn der Wert festgelegt ist. __ __ Hier sind einige Beispiele.

and_sample.py


print('Emperor' and 'Humboldt')
#Ausgabeergebnis: Humboldt
print('Humboldt' and 'Emperor')
#Ausgabeergebnis: Kaiser
print('penguin' and 0)
#Ausgabeergebnis: 0
print(False and 'penguin')
#Ausgabeergebnis: False
print(0 and False)
#Ausgabeergebnis: 0
print(False and 0)
#Ausgabeergebnis: False

Schließlich

Aufgrund des jüngsten Booms beim maschinellen Lernen und der einfachen Grammatik von Python denke ich, dass es viele Menschen gibt, die sich irgendwie mit Python beschäftigen (einschließlich meiner selbst). Es ist jedoch interessant, richtig zu studieren, und es kann zu unerwarteten Fehlern und unerwartetem Verhalten führen, die irgendwie nicht verstanden werden. Bis gestern war der Autor auch "eine logische Operation ist eine Entscheidung, einen Bool-Wert (Nose Hoji) zurückzugeben", also schuf er vielleicht in naher Zukunft eine lächerliche Kreatur und gab sie der Welt frei. Wie in den Referenzen erwähnt, wurde dieses Jahr [Einführung in die Python-Praxis] veröffentlicht (https://www.amazon.co.jp/Python%E5%AE%9F%E8%B7%B5%E5%85%A5) % E9% 96% 80-% E8% A8% 80% E8% AA% 9E% E3% 81% AE% E5% 8A% 9B% E3% 82% 92% E5% BC% 95% E3% 81% 8D% E5% 87% BA% E3% 81% 97% E3% 80% 81% E9% 96% 8B% E7% 99% BA% E5% 8A% B9% E7% 8E% 87% E3% 82% 92% E9% AB% 98% E3% 82% 81% E3% 82% 8B-WEB-PRESS-plus% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA / dp / 429711111X / ref = sr_1_1? dchild = 1 & hvadid = 386600561258 & hvdev = c & jp-ad-ap = 0 & keywords = Python% E5% AE% 9F% E8% B7% B5% E5% 85% A5% E9% 96% 80 & qid = 1594634033 & sr = 8-1 & yahhyd-22) ist ein großartiges Buch zum Erlernen von Python. Lassen Sie uns diese Gelegenheit nutzen, um "Irgendwie Python" auszuprobieren!

Verweise

Recommended Posts

Die boolesche Python-Operation gibt keinen booleschen Wert zurück
[Python] Der Boolesche Operator (oder / und) gibt keinen Booleschen Wert zurück
Der Rückgabewert der Python-Booleschen Operation ist nicht immer vom Bool-Typ
Python-Version wechselt nicht
[Python] gibt A [oder / und] B zurück
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
Python-Spezialcodec, der zu wissen scheint, aber nicht weiß
Das Autopep8-Format [VScode] funktioniert nicht. [Python]
Virtualenv funktioniert nicht unter Python 3.5 (Windows)
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Python> Python enthält nicht den letzten Offset
EOFError: EOF beim Lesen einer Zeile ist nicht auf den Standardeingabewert eingestellt
Opencv4.1 + Windows10 + Python 3.7.5 cv2.VideoCapture wird nicht korrekt angezeigt
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
Warum muss Python einen Doppelpunkt schreiben?
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] Ausdruck (1,2) macht kein Taple mit Klammern
Python frühe Rückkehr
[Python] Vektoroperation
Python-Betriebssystembetrieb
[Python] Matrixoperation
[Python of Hikari-] Kapitel 06-04 Funktionen (Argumente und Rückgabewerte 3)
[Python of Hikari-] Kapitel 06-02 Funktion (Argument und Rückgabewert 1)
Schlüsseleingabe, die nicht auf Schlüsseleingabe in Python wartet
Warum nicht einfach mit Python eine stilvolle Tabelle erstellen?
Python> Überprüfen Sie NoneType oder nicht> wenn a == None:> wenn a None ist:
C | Python> Negativwert-Modulo (%) -Operation> C: Rückgabe minus | Python: Rückgabe plus
[Python of Hikari-] Kapitel 06-03 Funktionen (Argumente und Rückgabewerte 2)
Was bedeutet das letzte () in einer Funktion in Python?
Die Geschichte, dass pyenv den Python-Ausführungsbefehl PATH nicht bestanden hat