Bestandsaufnahme der Ideen zum Unterbrechen mehrerer Schleifen in Python

爱喝马黛茶的安东尼
Freigeben: 2019-09-26 17:37:09
nach vorne
2206 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

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()
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage