尽管python并未明确允许do-while循环,但至少有3种合理的方式来实现它们:
1)
while True:
#loop body
if not expr():
break
Run Code Online (Sandbox Code Playgroud)
2)
x = True
while x:
#loop body
x = expr()
Run Code Online (Sandbox Code Playgroud)
3)
def f():
#loop body
f()
while expr():
f()
Run Code Online (Sandbox Code Playgroud)
更不用说这里提到的其他方法(例如协程,try-except子句,迭代器等),我认为它们在大多数情况下都是非Python的。我什至看到一些答案争辩说do-while循环不是Python的,但我不知道通用的替代方法。
哪种方法最适合pythonic?它们都有其独特之处:1)以无限循环开始,2)首先创建一个不透明变量,3)定义一个新函数。有谁有更好的方法?