有没有办法让while语句在完成后再运行一次?
示例:
x=1
while x<=30 :
print('hello world')
x+=1
print(x)
print('hello world')
这显然会打印“你好世界”31次。 虽然在较长的程序中,在循环之后重新编写整个代码有点愚蠢。
任何帮助将不胜感激!
UPDATE! 我没做x&lt; 31的原因如下。
我正在建立一个二十一点游戏。所以,当银行达到30美元时,正在播放另一轮,然后游戏就结束了。
银行的价值取决于玩家投注 (银行策划10美元,如果玩家下注3并且输掉该轮,则该银行有13美元)
答案 0 :(得分:2)
当然,如果您的条件是数字的,例如 或者,您可以使用原始条件的析取和第一次求值为 或者你可以将条件推迟到里面循环。这样,退出条件只会在循环的 next 迭代中生效。x < 30
,则可以将其更改为x < 31
或x <= 30
,但这可能并非总是可行。另一种方法是将循环体包装到一个函数中,并在中调用,然后在循环后再调用,但这也可能并不总是实用。< / p>
True
的某个表达式,然后使用False
。例如,您可以在列表上使用迭代器{ {1}}。只要实际条件为[True, False]
,第二部分根本不进行评估(True
是懒惰的),那么,当条件为or
时,会调用False
,第一次产生next
,然后True
False
x=1
oncemore = iter([True, False])
while x < 30 or next(oncemore):
x+=1
print(x)
答案 1 :(得分:0)
在进一步编辑问题之后,这是一种非常直接的方式来做你想做的事。
编辑:
done = False
x = 1
while not done:
if x >= 30:
done = True # Set done to true once x is greater than or equal to 30
# then print one last time
print('hello world')
x+=1
print(x)
而不是:
x = 1
while x < 30:
print('hello world')
x += 1
print(x)
print('hello world')
答案 2 :(得分:0)
我自己更喜欢使用while循环的else语句再做一次,例如,检查一下:
oncemore = True
num_list = []
while oncemore:
num_list.append((num % 10))
num = int(num / 10)
if int((num/10)) == 0:
oncemore = False
else:
num_list.append((num % 10))
num = int(num / 10)
num_list.reverse()
return num_list
while循环完全结束后,else语句再做一次我想做的事,只要记住这一点,而while循环应该完全结束而不会中断