Heim >Backend-Entwicklung >Python-Tutorial >For-else: Eine seltsame, aber nützliche Funktion in Python
Egal welche Programmiersprache wir verwenden, wir alle schreiben „if-else“-Anweisungen, aber was ist mit „for-else“?
Bei vielen Sprachen wie C, C++ und Java ist die Verwendung von „else“ nach einer Schleife völlig falsch. Allerdings verfügt Python als elegante Sprache über diese „seltsame, aber nützliche“ Funktion. Bei richtiger Verwendung wird unser Code sauberer.
In diesem Artikel wird die „for-else“-Funktion in Python vorgestellt und anhand einfacher Beispiele veranschaulicht, wie man sie richtig verwendet.
Wenn Sie zum ersten Mal auf die „For-Else“-Funktion stoßen, erscheint sie Ihnen seltsam und schwer zu verstehen (Python Developer Homepage für diejenigen, die gerade erst damit begonnen haben). Wann Bei Verwendung dieser Funktion kann es leicht passieren, dass man fälschlicherweise denkt, dass else falsch eingerückt ist). Tatsächlich ist die Verwendung jedoch überraschend einfach. Ein Satz reicht aus: Die „else“-Blöcke in Ihrem Code werden nur ausgeführt, wenn es keine Unterbrechungen in der Schleife gibt.
Klingt etwas zu einfach, um wahr zu sein? Betrachten wir es anhand eines Beispiels:
leaders = ["Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Not found Yang!
Wie oben gezeigt: Wie oben gezeigt, enthält die Anführerliste kein „Yang“, daher gibt es keine Unterbrechung in unserer for-Schleife. Der „else“-Block führt also die Informationen aus und gibt sie aus.
Was passiert, wenn die Anführerliste „Yang“ enthält?
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Yang is a leader!
Da die Leader-Liste wie oben gezeigt „Yang“ enthält, wird die for-Schleife unterbrochen und der Inhalt im „else“-Block wird nicht ausgeführt.
Kurz gesagt, die For-else-Funktion selbst ist nicht schwer zu verstehen, ihre korrekte und geschickte Verwendung jedoch nicht. Im Folgenden stellen wir drei Szenarien vor, in denen die For-else-Funktion geeignet ist.
Wir müssen die For-Else-Funktion nicht unbedingt in Python-Programmen verwenden. Ehrlich gesagt können wir das Gleiche auch ohne tun, aber wenn wir es verwenden, wird unser Code eleganter.
Das Iterieren über eine Liste, um bestimmte Elemente zu finden, ist ein grundlegendes Szenario für die Verwendung von Schleifen. Wenn wir das Zielelement gefunden haben, macht es normalerweise keinen Sinn, mit der Iteration fortzufahren, und wir müssen aus der Schleife ausbrechen. Die Frage ist: Woher wissen wir, ob das Element gefunden wird?
Die traditionelle Lösung besteht darin, eine „Mark“-Variable zu definieren und sie auf „True“ zu setzen, wenn wir ein bestimmtes Element finden.
leaders = ["Yang", "Elon", "Tim", "Warren"] have_yang = False for i in leaders: if i == "Yang": have_yang = True # Do something break if have_yang == False: # no yang ...# Do others
Wie im obigen Beispiel gezeigt, ist die Variable have_yang ein Flag. Wenn die for-Schleife abgeschlossen ist und ihr Wert False ist, wissen wir, dass „Yang“ nicht in der Liste enthalten ist und können einige andere Operationen ausführen.
Dieser Ansatz ist gut genug, aber wenn Sie die „eleganten“ Funktionen von Python nutzen möchten, ist die Verwendung von for-else eine weitere Option:
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": have_yang = True # Do something break else:# no yang ...# Do others
Diese Schreibweise sieht ordentlicher aus, oder?
Wenn der Code verschachtelte Schleifen enthält, kann auch for-else hilfreich sein.
for i in range(5): for j in range(5): if j == 2 and i == 0: break if not (j == 2 and i == 0): continue break
Wie oben gezeigt, ist das Ausbrechen aus verschachtelten Schleifen etwas schwierig, da wir wissen müssen, ob die innere Schleife ausgebrochen ist.
Der obige Code zeigt eine umständliche Lösung, um festzustellen, ob die innere Schleife unterbrochen wurde. Es funktioniert auf jeden Fall gut, aber wir können es übersichtlicher gestalten, indem wir for-else verwenden:
# use the for-else syntax for i in range(5): for j in range(5): if j == 2 and i == 0: break else:# only execute when it's no break in the inner loop continue break
nums = [1, 3, 0, 5] for denominator in nums: try: 20/denominator except ZeroDivisionError: break else:# no found ZeroDivisionError ...# Do others
Wie oben gezeigt: Wenn ZeroDivisionError nicht in der for-Schleife auftritt, können wir „else“ verwenden. Führen Sie entsprechende Folgeoperationen im Block durch.
Die for-else-Funktion in Python mag auf den ersten Blick etwas seltsam erscheinen, aber ihre Verwendung ist nicht schwer zu verstehen und kann in bestimmten Szenarien nützlich sein. Schließlich müssen wir uns nur eine Regel merken: Der „else“-Block wird nur ausgeführt, wenn es keine Unterbrechungen in der Schleife gibt.
Das obige ist der detaillierte Inhalt vonFor-else: Eine seltsame, aber nützliche Funktion in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!