Вопрос Глупый вопрос начинающего программиста.

Регистрация
27 Ноя 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Задам тупой вопрос начинающего программиста: почему при выполнении вот такого кода integer = 0 while integer < 10: integer += 1 print(integer) python выводит числа 1 до 10 хотя по идее он должен остановится на числе 9?
 
&gt; хотя по идее он должен остановится на числе 9?
Ну поясни свою идею тогда. У меня идея вот какая:

Когда integer=9, происходит проверка цикла while integer &lt; 10, она проходит, выполняется тело цикла integer += 1, integer становится 10, происходит проверка цикла while integer &lt; 10, она не проходит, происходит выход из цикла и печатается результат 10. А у тебя какая идея? Чем ты в своей идее руководствуешься?
 
integer = 0
while integer < 10:
integer += 1
print(integer)

integer = 0
0 < 10: верно
integer = 0 + 1 = 1
выводим 1
1 < 10: верно
integer = 1 + 1 = 2
выводим 2
2 < 10: верно
integer = 2 + 1 = 3
выводим 3
3 < 10: верно
integer = 3 + 1 = 4
выводим 4
4 < 10: верно
integer = 4 + 1 = 5
выводим 5
5 < 10: верно
integer = 5 + 1 = 6
выводим 6
6 < 10: верно
integer = 6 + 1 = 7
выводим 7
7 < 10: верно
integer = 7 + 1 = 8
выводим 8
8 < 10: верно
integer = 8 + 1 = 9
выводим 9
9 < 10: верно
integer = 9 + 1 = 10
выводим 10
10 < 10: неверно
 
местами поменяйте

print(integer)

integer += 1
 
Это называется цикл с предусловием. То есть он выполняется когда при входе в цикл проверяемое условие ещё истинно. Чтобы условие проверялось на выходе из цикла, надо заменить на цикл с постусловием. Как это пишется в Питоне мы не знаем, наверное что-то вроде do {тело цикла} while условие.
 
твой код доходит до такого состояния:
integer уже равно 9
так как integer меньше 9, то условие верно и к значению integer прибавляется 1
следовательно выводится будет 10
 
Назад
Сверху