2015-04-02 60 views
-3

我试图做一个护理程序,它似乎是出于某种原因我的程序不断即使它应该循环。它工作得很好,直到1加他youGot变量。不够的话,那么:为什么我的Python程序不断循环,即使它应注意什么?

Lorem存有胡萝卜,生态番茄汤。和任何元素LOREM。但是现在生活的笑声,这是创新的有针对性的执法质量。温暖的沙拉食谱或悲伤的质量ultricies等。然而,房地产毕业巴基斯坦,其接收宏层。 Dapibus拉克丝eleifend Phasellus油树。南明智的,谁已经有针对性的足球,足球的质量。 DUIS facilisis facilisis lectus,为了生命的拉动,很多伟大的事情。

import random 

#generate numbers 

spinTime = float(random.randint(7, 18)) 

actualSpin = 0 


while(actualSpin != spinTime): 
    print(""" 
     B 7 @ 
     % # + 
     $ J & """) 

    actualSpin += 1 
    youGot = "Nothing" 
    print(" \n"*100) 

    print(""" 
     7 7 7 
     # $ J 
     & % & """) 

    actualSpin += 1 
    youGot = "7" 
    print(" \n" * 100) 

    print(""" 
     7 % 7 
     B B B 
     & % & """) 

    actualSpin += 1 
    youGot = "Bar" 
    print(" \n" * 100) 

    print(""" 
     $ # & 
     % % % 
     J J & """) 

    actualSpin += 1 
    youGot = "%" 
    print(" \n" * 100) 

    print(""" 
     7 + 7 
     # $ J 
     # # # """) 

    actualSpin += 1 
    youGot = "#" 
    print(" \n" * 100) 


    print(""" 
     7 $ % 
     + + + 
     B B + """) 

    actualSpin += 1 
    youGot = "+" 
    print(" \n" * 100) 


    print(""" 
     7 $ % 
     & & & 
     B % + """) 

    actualSpin += 1 
    youGot = "&" 
    print(" \n" * 100) 

print("You got a:",youGot) 
+6

的有字的最低金额做出后的一点是要确保正确解释你遇到你已经尝试解决什么问题,。 – TigerhawkT3 2015-04-02 19:10:25

回答

0

你几乎肯定不希望成为一个spinTimefloat如果你正在做一个平等的比较。尽量保持它作为一个int。通过这种方式,在某些时候TrueactualSpin != spinTime将提供spinTime只一次,每次轮循环递增(它不是;看到其他的答案)。

如果你必须有非整数spinTime,比较actualSpin <= spinTime

+1

这不会有任何影响,在这里,即使它是一个浮动,仍然会正是因为它是从一个int投表示。 – robbrit 2015-04-02 19:15:19

2

既然你提高你的循环6次,程序将仅spinTime是6的倍数,否则会永远继续下去停止。

尝试<您的循环条件

while actualSpin < spinTime: 
0

在循环年底,actualSpin值将是7在第一次迭代,14第二,21第三,依此类推。除非你是幸运的,产生的随机数spinTime714,循环将永远继续下去。既然你不喜欢的东西当前时间播种随机数生成器,它会产生相同数量的每次运行它的时候。

1并不真正了解你的程序,或者你想要做什么的逻辑,但这是它之所以不断循环。

0

两个@xnx和@Jan对你有很好的提示。

spinTime不应该被强制转换为浮动。即使它不会影响这种情况下,它是坏的形式。

由于@Jan所指出的,你需要每次增加它的时间后,检查actualSpin的价值,否则,你有一个6合7失踪人数的机会。

另一种选择是将while循环改为

while(actualSpin <= spinTime) 

然而,这将严重偏向于while循环的最后一个选择,由于现有的问题。

相关问题