虽然循环没有结束

时间:2012-01-15 06:12:51

标签: python

嗨,有人可以告诉我为什么这不起作用?它永远运行,并没有结束。当a值达到10时,它应该退出循环。

a=0
while a!=10:
    for counter in range(11):
        a+=counter
        print a

4 个答案:

答案 0 :(得分:4)

a变为10,但它仍在for循环内(当10循环进行第二次运行时,变为大于while )。

print向下移动一级,你会看到我的意思:

a=0
while a!=10:
    for counter in range(11):
        a+=counter
    print a
    raw_input('press enter to keep looping')

答案 1 :(得分:1)

在第一个for循环之后它变为55,并且它不等于10并且它保持增加

答案 2 :(得分:1)

也许你的意思是:

a=0
for counter in range(11):
    a+=counter
    print a
    if a > 10: 
        break 

您可以查看http://docs.python.org/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops

答案 3 :(得分:0)

因为计数器在增加,所以A因此增加了! 所以不是等于1,2,3,4,5,6等,而是等于0,1,3,6,10等! 只需去+ = 1 或将其更改为“a< 10”