Heim > Artikel > Backend-Entwicklung > Bestandsaufnahme der Ideen zum Unterbrechen mehrerer Schleifen in Python
I. Aus einer einzelnen Schleife ausbrechen
Egal um welche Programmiersprache es sich handelt, es kann notwendig sein, aus der Schleife auszubrechen Schleife, beispielsweise beim Aufzählen. Sie wird beendet, wenn eine Zahl gefunden wird, die die Bedingung erfüllt. Das Ausbrechen aus einer einzelnen Schleife ist sehr einfach, wie zum Beispiel:
for i in range(10): if i > 5: print i break
Allerdings müssen wir manchmal aus mehreren Schleifen herausspringen, und break kann nur aus einer Schleife herausspringen, wie zum Beispiel:
for i in range(10): for j in range(10): if i+j > 5: print i,j break
Dieser Code ist nicht Es wird gesagt, dass er stoppt, wenn eine Gruppe von i+j > 5 gefunden wird, aber 10 Gruppen werden kontinuierlich gefunden, da break nur aus der for j in range (10)-Schleife herausspringt. Wie können wir also aus der mehrfach gewichteten Kategorie herausspringen? Machen Sie hier eine Notiz.
Verwandte Empfehlungen: „Python-Tutorial“
Ausbrechen aus mehreren Schleifen
Tatsächlich die Standardsyntax von Python ist Es unterstützt nicht das Herausspringen aus mehreren Schleifen, daher können Sie nur einige Techniken verwenden: Schreiben als Funktion, Verwenden eines kartesischen Produkts und Verwenden des Debuggens.
Natürlich ist die häufigste Idee, die Variablennotation
def f(): flag = 0 for i in range(10): for j in range(i): if i+j>5: print i,j flag = 1 break if flag == 1: break if __name__ == "__main__": f()
zu verwenden, um eine Funktion zu schreiben.
In Python stoppt die Funktion, wenn sie ausgeführt wird erreicht die return-Anweisung, sodass Sie diese Funktion verwenden können, um Funktionen als Funktionen zum Beenden mehrerer Schleifen zu schreiben.
Zum Beispiel:
def work(): for i in range(10): for j in range(10): if i+j > 5: return i,j print work()
Verwendung des kartesischen Produkts
Die Idee dieser Methode ist, dass ich aus einer einzelnen Schleife springen kann, Ich werde die mehreren Schleifen neu schreiben. Für eine einzelne Schleife können Sie das kartesische Produkt Funktion Produkt in itertools verwenden, zum Beispiel:
from itertools import product for i,j in product(range(10), range(10)): if i+j > 5: print i,j break
Verwenden Sie den Debug-Modus
Das kartesische Die Produktmethode ist sehr clever und sehr einfach, kann jedoch nur verwendet werden, wenn die Sammlungen in jeder Schleife unabhängig sind. Wenn jede Schleifenebene eng mit der vorherigen Ebene verknüpft ist, kann diese Technik nicht verwendet werden. Zu diesem Zeitpunkt können Sie die erste Methode verwenden und sie als Funktion schreiben. Darüber hinaus können Sie auch den Debugging-Modus verwenden. Dies macht sich das Prinzip zunutze, den Debugmodus zu verlassen, sobald ein Fehler auftritt. Dadurch wird ein Fehler verschleiert.
class Found(Exception): pass try: for i in range(10): for j in range(i): #第二重循环跟第一重有关 if i + j > 5: raise Found except Found: print i, j
Das obige ist der detaillierte Inhalt vonBestandsaufnahme der Ideen zum Unterbrechen mehrerer Schleifen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!