作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么办法可以让 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/
我是一名优秀的程序员,十分优秀!