虽然 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)定义一个新函数。有没有人有更好的方法?