2013-04-03 35 views
1

我试图做一个循环,从而程序继续前进,直到银行> 100000,并在该while循环有另一个while循环,它确定银行是否已达到最低值(无论用户失败了,银行重置为20000)。 即使连续迭代达到1000000条件,目前该循环仍会继续并持续运行。任何人都可以看到解决这个问题的方法吗?While循环和布尔变成虚假时

n.b. '单打'只是一个包含一个数字的数组。

非常感谢。

i = 0 
newbank = [] 
iterations = [] 
while bank < 1000000: 
    bank = 20000 
    while bank > 100: 
     spin = randint(0, 38) 
     if choices2 == singles: 
      if spin == singles:  
       bank = bank + (bet * 35) 
      else: 
       bank = bank - bet 
      i = i + 1 
      iterations.append(i) 
      newbank.append(bank) 
+8

事实:我觉得代码1空间缩进太难看。 –

+0

赌注的价值是什么? – karthikr

+1

@MartijnPieters:享受:) –

回答

2

你的第二个while继续,即便bank < 10000000运行,所以你永远不会离开该循环,如果你这样做,那么,你会留在第一个循环。

您的代码无法停止。

你要像...

while bank > 100 and bank < 1000000: 

我不知道究竟你想什么逻辑来实现,但你需要想想你停止状况更好。

编辑:

在阅读你的问题好,我想你应该摆脱这两个循环,因为一会绰绰有余。

初始化您bank = 20000外循环,

bank = 20000 
while bank < 1000000: 
    if bank < 100: 
     bank = 20000 

.... 
+0

D'oh!是忘记在第二个循环中将银行的限制设置为<1000000 –

+0

如果解决了问题,您可以接受答案来关闭此选项。 – pcalcao