如何在 python 3 中让 while 语句再次运行一次

Bil*_*ill 3 loops while-loop conditional-statements python-3.x

有没有办法让 while 语句在完成后再次运行一次?

这显然会打印 'hello world' 31 次。尽管在较长的程序中,在循环之后再次重写整个代码有点愚蠢。

任何帮助将不胜感激!

更新!我没有做 x<31 的原因如下。

我正在构建一个二十一点游戏。因此,当银行达到 30 美元时,将进行另一轮游戏,然后游戏结束。

庄家的价值取决于玩家的下注(庄家的策略为 10 美元,如果玩家下注 3 并输掉该轮庄家则有 13 美元)

tob*_*s_k 8

当然,如果您的条件是数字,例如x < 30,您可以将其更改为x < 31或x <= 30,但这可能并不总是可行。另一种方法是将循环体包装到一个函数中,并在循环内和循环后再次调用它,但这也可能并不总是实用。

或者,您可以使用原始条件和某个表达式的析取,该表达式True首先计算结果,然后计算结果False。例如,您可以在 list 上使用迭代器[True, False]。只要实际条件是True,第二部分就根本不被求值(or是惰性的),然后,当条件是 时False,next被调用,True第一次产生,然后False

x=1
oncemore = iter([True, False])
while x < 30 or next(oncemore):
    x+=1
    print(x)
Run Code Online (Sandbox Code Playgroud)

或者您可以将检查条件推迟到循环内部。这样,退出条件只会在循环的下一次迭代中生效。

once_more = True
while once_more:
    if not (x < 30):
        once_more = False
    # original loop body here
Run Code Online (Sandbox Code Playgroud)