Heim  >  Artikel  >  Backend-Entwicklung  >  Bestandsaufnahme der Ideen zum Unterbrechen mehrerer Schleifen in Python

Bestandsaufnahme der Ideen zum Unterbrechen mehrerer Schleifen in Python

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼nach vorne
2019-09-26 17:37:092182Durchsuche

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!

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