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

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

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

【问题讨论】:

    标签: python loops


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 2016-11-22
      • 1970-01-01
      相关资源
      最近更新 更多