Heim  >  Artikel  >  Backend-Entwicklung  >  For-else: Eine seltsame, aber nützliche Funktion in Python

For-else: Eine seltsame, aber nützliche Funktion in Python

王林
王林nach vorne
2023-04-13 20:43:011292Durchsuche

For-else: Eine seltsame, aber nützliche Funktion in Python

Einführung

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.

Grundkenntnisse über die „For-Else“-Funktion

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.

3 Szenarien für die Verwendung der For-Else-Funktion

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.

1. Elemente, die nicht markiert sind, iterieren und finden.

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?

2. Wird verwendet, um aus verschachtelten Schleifen auszubrechen

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

3. Helfen Sie bei der Behandlung von Ausnahmen

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.

Zusammenfassung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen