suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python – Auf der Suche nach einer Methode in def, die den fortlaufenden Effekt des Aufrufs dieser def erreichen kann, um bestimmte Bedingungen zu erfüllen (der Titel ist nicht klar, siehe Beschreibung in der Frage)

def con(x):
    if x==3:
        continue #会报错

def con2(x):
    if x == 4:
        continue #会报错
for i in range(0,10):
    con(i)
    con2(i)
    print(i)
    

Was ich meine ist, dass, wenn die Bedingungen in def erfüllt sind, die extern aufgerufene Schleife fortgesetzt wird. Wenn im Beispiel der Wert von i beispielsweise 3 oder 4 ist, fahren Sie fort. Da viele Def-Methoden aufgerufen werden und das tatsächliche Szenario viel komplizierter ist als das Beispiel, scheint es nicht sehr prägnant zu sein, den Rückgabewert einzeln zu beurteilen. Ich möchte Sie fragen, ob es eine Möglichkeit gibt, mein Anliegen zu verwirklichen. Vielen Dank~

过去多啦不再A梦过去多啦不再A梦2816 Tage vor840

Antworte allen(2)Ich werde antworten

  • 高洛峰

    高洛峰2017-05-27 17:41:54

    可以通过抛个特定异常的方式来影响 for 循环:

    
    class Abort(Exception):
        pass
    
    def con(x):
        if x==3:
            raise Abort()
    
    def con2(x):
        if x == 4:
            raise Abort()
    for i in range(0,10):
        try:
            con(i)
            con2(i)
        except Abort:
            continue
        print(i)
        

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-05-27 17:41:54

    continue必须搭配for一起使用,可以尝试换一种实现思路
    如:

    def con(x):
        return True if x == 3 else False
    
    def con2(x):
        return True if x == 4 else False
    
    for i in range(0,10):
        lst = [
            con(i),
            con2(i)
        ]
        
        if any(lst):
            continue
    
        print(i)

    Antwort
    0
  • StornierenAntwort