Heim >Backend-Entwicklung >Python-Tutorial >Teilen Sie ein Beispiel-Tutorial zur Betriebslogik von und/oder in Python
PythonDie Kernidee von und und oder Operationen - Kurzschlusslogik
Gestartet Als ich vor Kurzem das Python-Tutorial von Liao , darüber nachdenken Nachdem Sie das Tutorial von Liao Xuefeng gelesen haben, gehen Sie noch einmal zurück und vielleicht können Sie sich ein paar Ideen holen.
Okay, zurück zum Thema, der Grund, warum ich das heute geschrieben habe, ist, dass die und/oder-Operation im Filterkapitel von Liao Xuefengs Tutorial auftauchte. Dies wurde im vorherigen Tutorial nicht erwähnt Als ich es zum ersten Mal las, war ich verwirrt. Der Code lautete wie folgt:
#把一个序列中的空字符串删掉 1> def not_empty(s): 2> return s and s.strip() 3> 4> filter(not_empty, ['A', '', 'B', None, 'C', ' '])
Später habe ich einige Betriebslogiken über und / oder im Internet überprüft und hinzugefügt Mein eigenes Verständnis und ich habe es wie folgt zusammengefasst (ich weiß nicht, ob es falsch ist). Bitte korrigieren Sie mich, wenn es Fehler gibt):
Erstens Beginnen wir mit den Grundkonzepten. Welche Objekte werden in Python als falsch behandelt? Und welche davon sind wahr?
** In Python werden None, 0 in jedem numerischen Typ, leere Zeichenfolge „“, leeres Tupel (), leere Liste [], leeres Wörterbuch {} als False behandelt und wenn ein benutzerdefinierter Typ das implementiert Wenn die Methode () oder len() ungleich Null ist und die Methode 0 oder False zurückgibt, wird ihre Instanz ebenfalls als False behandelt und andere Objekte sind True. **
Das Folgende ist die einfachste logische Operation:
True and True ==> True True or True ==> True True and False ==> False True or False ==> True False and True ==> False False or True ==> True False and False ==> False False or False ==> False
Anhand der beiden oben genannten Punkte können wir einige Beispiele nennen:
>>> a = [0, 1, '' ,3] >>> a[0] and a[1] 0
a[0] = 0, a[1] = 1, also werden a[0] und a[1] zu 0 und 1 (Falsch und Wahr), also ist es 0 (Falsch).
>>> a = [0, 1, '' ,3] >>> a[2] and a[1] ''
Wenn beide gleichzeitig False sind, geben Sie den Wert auf der linken Seite zurück.
Wenn es mehr als einen logischen Operator gibt und/oder, ist die Kernidee seiner Operationsregeln die Kurzschlusslogik. Okay, werfen wir einen Blick auf das Kurzschlussdenken (meine Zusammenfassung weicht möglicherweise von den Meinungen anderer Leute im Internet ab, bitte hören Sie sich meine Analyse langsam an):
AusdruckVon Links-nach-rechts-Operation: Wenn der logische Wert auf der linken Seite von oder wahr ist, werden alle Ausdrücke nach oder kurzgeschlossen und der Ausdruck auf der linken Seite von oder wird direkt ausgegeben.
Ausdrücke werden von links nach rechts ausgewertet. Wenn der logische Wert auf der linken Seite von und falsch ist, werden alle nachfolgenden und-Ausdrücke kurzgeschlossen, bis oder erscheint und der Ausdruck eingeschaltet ist Die linke Seite von und wird ausgegeben. Gehen Sie zur linken Seite von oder und nehmen Sie an der nächsten logischen Operation teil.
Wenn die linke Seite von oder „False“ oder die linke Seite von „und“ „True“ ist, kann die Kurzschlusslogik nicht verwendet werden.
Es ist vielleicht etwas abstrakt, aber das ist in Ordnung. Lassen Sie uns als Nächstes einige Beispiele nennen.
Hier ist eine clevere Methode, die es uns ermöglicht, die Kurzschlusssituation intuitiv zu verstehen, wenn Python diese logischen Anweisungen verarbeitet (ich habe es auch von anderen gelernt)
Okay, fangen wir mit dem einfachen At an Gehen Sie zu Beginn davon aus, dass es sich um alle und-Anweisungen oder alle oder-Anweisungen handelt:
1> def a(): 2> print 'A' 3> return [] 4> def b(): 5> print 'B' 6> return [] 7> def c(): 8> print 'C' 9> return 1 10> def d(): 11> print 'D' 12> return [] 13> def e(): 14> print 'E' 15> return 1 16> 17> if a() and b() and c() and d() and e(): 18> print 'ok' #显示结果如下 A
Der logische Wert von a() ist Falsch, gefolgt von und-Anweisungen, alle kurz- geschaltet, gibt schließlich den Ausdruck von a() zurück.
1> def a(): 2> print 'A' 3> return 1 4> def b(): 5> print 'B' 6> return 1 7> def c(): 8> print 'C' 9> return [] 10> def d(): 11> print 'D' 12> return [] 13> def e(): 14> print 'E' 15> return 1 16> 17> if a() and b() and c() and d() and e(): 18> print 'ok' #显示结果如下 A B C
Der logische Wert von a() ist True und kann nicht kurzgeschlossen werden. Dann führt es eine logische Operation mit b() aus und gibt den logischen Wert True zurück von b(), das dasselbe ist wie c(), führt logische Operationen aus und gibt den logischen Wert False von c() zurück. Wenn auf alle und-Anweisungen folgen, werden sie alle kurzgeschlossen und der Ausdruck von c() ist endgültig zurückgegeben.
1> def a(): 2> print 'A' 3> return 1 4> def b(): 5> print 'B' 6> return [] 7> def c(): 8> print 'C' 9> return 1 10> def d(): 11> print 'D' 12> return [] 13> def e(): 14> print 'E' 15> return 1 16> 17> if a() or b() or c() or d() or e(): 18> print 'ok' #显示结果如下 A ok
Der logische Wert von a() ist True, gefolgt von oder-Anweisungen, alle kurzgeschlossen, und schließlich wird der Ausdruck von a() zurückgegeben.
1> def a(): 2> print 'A' 3> return [] 4> def b(): 5> print 'B' 6> return [] 7> def c(): 8> print 'C' 9> return 1 10> def d(): 11> print 'D' 12> return [] 13> def e(): 14> print 'E' 15> return 1 16> 17> if a() or b() or c() or d() or e(): 18> print 'ok' #显示结果如下 A B C ok
Der logische Wert von a() ist True und kann nicht kurzgeschlossen werden. Führen Sie dann eine logische Operation mit b() aus und geben Sie den logischen Wert False von zurück b(), das mit c() identisch ist, führt logische Operationen aus und gibt den logischen Wert „True“ von c() zurück. Wenn auf alle Anweisungen „or“ folgt, werden sie alle kurzgeschlossen und der Ausdruck von c() lautet „final“. zurückgegeben.
Lassen Sie uns nun über die Situation sprechen, in der und und oder Aussagen nebeneinander existieren:
1> def a(): 2> print 'A' 3> return [] 4> def b(): 5> print 'B' 6> return [] 7> def c(): 8> print 'C' 9> return 1 10> def d(): 11> print 'D' 12> return [] 13> def e(): 14> print 'E' 15> return 1 16> def f(): 17> print 'F' 18> return 1 19> def g(): 20> print 'G' 21> return [] 22> def h(): 23> print 'H' 24> return 1 25> 26> if a() and b() and c() and d() or e() and f() or g() and h(): 27> print 'ok' #输出结果如下: A E F ok
Denken Sie nicht, dass die Aussage vorhanden ist Zu lang Es ist schwierig. Zuerst ist der logische Wert von a() False, und dann gibt es drei and-Anweisungen bis zur or-Anweisung: a() und b() sowie c() und d(). , die alle kurzgeschlossen sind. Wenn a() oder e() wahr ist, wird e() ausgegeben. Wenn e() und F() wahr sind, wird f() ausgegeben. Wenn darauf eine or-Anweisung folgt, werden alle nachfolgenden Anweisungen kurzgeschlossen. (Mit einem guten Verständnis der drei Punkte der Kurzschlusslogik, die ich zusammengefasst habe, sollte es kein Problem geben.)
转化为 python 语言为:
bool and a or b
如何理解呢? 首先 a , b 都为真,这是默认的。如果 bool 为真, 则 bool and a 为真,输出 a ,短路 b 。如果 bool 为假,短路 a,直接 bool or b ,输出 b 。
换一种更简单的写法:
return a if bool else b
【相关推荐】
Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel-Tutorial zur Betriebslogik von und/oder in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!