虽然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()
更不用说提及here的其他方法(例如协同程序,try-except子句,迭代器等),我认为在大多数情况下都是非pythonic。我甚至看到一些答案认为do-while循环是非pythonic,但我不知道一个通用的替代方案。
哪种方法最pythonic?它们都有它们的奇怪之处:1)以无限循环开始,2)首先创建一个不透明变量,3)定义一个新函数。有没有人有更好的方法?