您的位置:首页技术文章
文章详情页

python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)

【字号: 日期:2022-06-29 18:53:49浏览:49作者:猪猪

问题描述

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方法会有很多个,而且实际场景要比例子复杂很多,所以感觉一个一个判断返回值并不是很简洁。想请问大家有没有什么方法,实现小弟的这个述求,非常感谢大家~

问题解答

回答1:

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

class Abort(Exception): passdef 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) 回答2:

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

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

标签: Python 编程