在Python 3中不使用`break`来停止迭代

在Python 3中不使用`break`来停止迭代,第1张

概述例如,这段代码可以不间断地重写(没有继续或返回)吗? 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..." 例如,这段代码可以不间断地重写(没有继续或返回)吗?

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:        logging.info("Done.")        break

编辑:由于有些人批评使用break并继续内部循环,我想知道Python是否允许在没有它们的情况下编写for循环.我会说Python不允许这样做(也许它会违背“一种方法”规则).

编辑2:评论者让我注意到可以使用返回,但这也不是解决方案.

解决方法 你总是可以使用一个函数并从中返回:

import loggingdef 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更优雅,因为它让你的意图更清晰.

总结

以上是内存溢出为你收集整理的在Python 3中不使用`break`来停止迭代全部内容,希望文章能够帮你解决在Python 3中不使用`break`来停止迭代所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存