总是至少执行一次的 Python 循环? [复制]

Posted

技术标签:

【中文标题】总是至少执行一次的 Python 循环? [复制]【英文标题】:Python loop that always executes at least once? [duplicate] 【发布时间】:2011-09-21 15:26:53 【问题描述】:

可能重复:do-while loop in Python?

如何在 Python 中编写一个始终至少执行一次的循环,并在第一次迭代后执行测试? (与我通过 google 和 python 文档找到的 20 个 for 和 while 循环的 Python 示例不同)

【问题讨论】:

【参考方案1】:
while True:
    #loop body
    if (!condition): break

【讨论】:

这是我已经在使用的,但它看起来不是很优雅。 @Trindaz:可以说,拥有另一种循环语法会使 语言 不那么优雅。上面的语法并不过分冗长或难以理解,因此拥有更多语法的情况并不是非常令人信服。此外,Python 开发人员已经讨论过添加 do-while,结论是没有很好的方法可以使其适合 Python 现有的语法,当然没有比这个答案中给出的习语更优雅了。 如果有一个关键字dowhile 的用法在语法上与while 相同,但区别在于它会先运行循环,我会使用它。【参考方案2】:

可以试试:

def loop_body():
    # implicitly return None, which is false-ish, at the end


while loop_body() or condition: pass

但实际上我认为我会以另一种方式来做。在实践中,你并不经常需要它。 (甚至比您想象的要少;尝试以其他方式重构。)

【讨论】:

以上是关于总是至少执行一次的 Python 循环? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Java流程控制07:DoWhile循环

软件测试中执行覆盖率怎么计算。

Python:只执行一次for循环(不是第一次而是第二次)? [复制]

do-while循环结构

do-while循环结构

要使循环体至少执行一次,应使用啥循环结构