python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)
过去多啦不再A梦
过去多啦不再A梦 2017-05-27 17:39:54
0
2
795
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)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板