Ele*_*ena 3 python iteration foreach python-3.x
例如,可以在没有break(和没有continue或return)的情况下重写此代码吗?
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
Run Code Online (Sandbox Code Playgroud)
编辑:由于有些人批评使用break和continue内部循环,我想知道Python是否允许编写for没有它们的循环.我会说Python不允许这样做(也许它会违背"一种方法"规则).
编辑2:评论者让我注意到return可以使用,但这也不是解决方案.
你总是可以使用一个函数并从中返回:
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()
Run Code Online (Sandbox Code Playgroud)
虽然break在我看来使用更优雅,因为它使你的意图更清晰.
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |