在Python 3中不使用`break`来停止迭代
发布时间:2020-12-20 11:39:04 所属栏目:Python 来源:网络整理
导读:例如,这段代码可以不间断地重写(没有继续或返回)吗? import loggingfor i,x in enumerate(x): logging.info("Processing `x` n.%s...",i) y = do_something(x) if y == A: logging.info("Doing something else...") do_something_else(x) elif y == B: logg
例如,这段代码可以不间断地重写(没有继续或返回)吗?
import logging for i,x in enumerate(x): logging.info("Processing `x` n.%s...",i) y = do_something(x) if y == A: logging.info("Doing something else...") do_something_else(x) elif y == B: logging.info("Done.") break 编辑:由于有些人批评使用break并继续内部循环,我想知道Python是否允许在没有它们的情况下编写for循环.我会说Python不允许这样做(也许它会违背“一种方法”规则). 编辑2:评论者让我注意到可以使用返回,但这也不是解决方案. 解决方法
你总是可以使用一个函数并从中返回:
import logging def func(): for i,x in enumerate(x): logging.info("Processing `x` n.%s...",i) y = do_something(x) if y == A: logging.info("Doing something else...") do_something_else(x) elif y == B: logging.info("Done.") return # Exit the function and stop the loop in the process. func() 虽然在我看来使用break更优雅,因为它让你的意图更清晰. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |