搜尋

首頁  >  問答  >  主體

python - 求一個在def中可以實作呼叫本def滿足特定條件continue效果的方法(標題說不太清楚,請見題內描述)

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)
    

小弟的意思是,若滿足def內的條件,則外部呼叫的for迴圈做continue。例如,在例子中,i的值若為3或4,則continue。因為for中呼叫的def方法會有很多個,而且實際場景要比例子複雜很多,所以感覺一個一個判斷回傳值並不是很簡潔。想請問大家有沒有什麼方法,實現小弟的這個述求,非常感謝大家~

过去多啦不再A梦过去多啦不再A梦2835 天前848

全部回覆(2)我來回復

  • 高洛峰

    高洛峰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)
        

    回覆
    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)

    回覆
    0
  • 取消回覆