有什么办法可以让 while 语句在完成后再运行一次?
例子:
x=1 while x<=30 : print('hello world') x+=1 print(x) print('hello world')
这显然会打印 31 次“hello world”。 尽管在较长的程序中,在循环后重新编写整个代码有点愚蠢。
任何帮助将不胜感激!
更新! 我没有做 x<31 的原因如下。
我正在构建一个二十一点游戏。因此,当银行达到 30 美元时,将进行另一轮游戏,然后游戏结束。
银行的值(value)取决于玩家的投注 (bank strats with 10$ ,如果玩家下注 3 并输掉这一轮,银行有 13$)
最佳答案
当然,如果你的条件是数字,比如x < 30
,您可以将其更改为 x < 31
或 x <= 30
,但这并不总是可能的。另一种方法是将循环体包装到一个函数中,并在循环内和之后再次调用它,但这也可能并不总是实用。
或者,您可以使用原始条件的析取和某些计算结果为 True
的表达式第一次,然后到False
.例如,您可以在列表 [True, False]
上使用迭代器.只要实际情况是True
, 第二部分根本不被评估( or
是惰性的),然后,当条件是 False
时, next
被调用,产生 True
第一次然后False
x=1
oncemore = iter([True, False])
while x < 30 or next(oncemore):
x+=1
print(x)
或者您可以将条件检查推迟到循环内部。这样,退出条件只会在循环的下次迭代中生效。
once_more = True
while once_more:
if not (x < 30):
once_more = False
# original loop body here
关于loops - 如何让 while 语句在 python 3 中再运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493617/