是否有办法在完成后再运行一次while语句?
这显然将打印“你好世界”31次。虽然在较长的程序中,在循环之后重新编写整个代码是有点愚蠢的。
任何帮助都将不胜感激!
更新!我没有做x<31的原因如下。
我正在建造一个积木game.So,当银行达到30美元,另一轮正在进行,然后游戏结束。
银行的价值取决于玩家的赌注(10美元的银行层,如果玩家下注3,输掉整个银行有13美元)
发布于 2014-12-15 21:53:25
当然,如果您的条件是数字的,如x < 30,您只需将其更改为x < 31或x <= 30,但这并不总是可能的。另一种方法是将循环体封装到一个函数中,并在循环之后调用它,但这也可能并不总是实用的。
或者,您可以使用原始条件的分离和一些计算为True的表达式,然后再使用False.For示例,您可以在列表[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发布于 2014-12-15 21:42:54
经过进一步的编辑问题,这是一个相当直截了当的方式来做你想要的。
编辑:
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')发布于 2019-08-03 13:27:44
作为一个例子,我更喜欢带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循环完全完成one语句之后,做任何我想做的事情,再做一次,只需将这一点留在您的脑海中,而循环应该完全完成而不间断。
https://stackoverflow.com/questions/27493617
复制相似问题