2012-01-15 8 views
0

Привет, может кто-нибудь сказать мне, почему это не работает? Он работает вечно и не заканчивается. Когда значение a достигает 10, он должен выйти из цикла.Пока цикл не заканчивается

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

ответ

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') 
+0

Хорошо спасибо. Я не знал, что значение будет проверяться только после завершения цикла for. Я думал, что это будет проверяться каждый случай в цикле for. Новичок Python: $ – PhoneMicrowave

0

Потому что счетчик растет, и A поэтому растет вверх bby больше! , поэтому вместо равного 1,2,3,4,5,6 и т. Д. Он равен 0, 1, 3, 6, 10 и т. Д.! просто идти + = 1 или изменить его на «в то время как < 10»

+0

, если вы хотите для печати чисел от 0 до 10, перейдите: , а <= 10 распечатать – Magicaxis

1

После того, как первый цикл становится 55, и она не равна 10, и он продолжает увеличиваться

Смежные вопросы