5

虽然 python 没有明确允许 do-while 循环,但至少有 3 种合理的方法来实现它们:

1)

while True:
    #loop body
    if not expr():
        break

2)

x = True
while x:
    #loop body
    x = expr()

3)

def f():
    #loop body

f()
while expr():
    f()

更不用说这里提到的其他方法(例如协程、try-except 子句、迭代器等),我认为这些方法在大多数情况下都是非 Python 的。我什至看到一些答案认为 do-while 循环是非 Python 的,但我不知道通用的替代方案。

哪种方法最pythonic?它们都有自己的奇怪之处:1)以无限循环开始,2)首先创建一个不透明的变量,以及 3)定义一个新函数。有没有人有更好的方法?

4

0 回答 0