python - 求一個在def中可以實作呼叫本def滿足特定條件continue效果的方法(標題說不太清楚,請見題內描述)
过去多啦不再A梦
过去多啦不再A梦 2017-05-27 17:39:54
0
2
799
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梦

全部回覆(2)
小葫芦

可以透過拋個特定異常的方式來影響 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)
    
漂亮男人

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)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板