В Python есть два типа циклов — циклы for и циклы while. Если циклы for перебирают список (итерируемый объект) по одному элементу, то цикл while, наоборот, повторяет команды внутри своего тела, пока условие в выражении while истинно. В этом смысле он очень похож на оператор if. Он выполняет команды внутри цикла while, если условие истинно:
i = 0
while i < 5:
print('Current i is:', i)
i += 1
print('Done')
Current i is: 0
Current i is: 1
Current i is: 2
Current i is: 3
Current i is: 4
Done
The program on the left will print this output
Изначально переменной i присваивается значение 0 ⇒ i = 0.
Затем программа проверяет, является ли i < 5, и поскольку 0 < 5, она заходит в тело цикла while.
Программа выводит Current i is: 0.
Переменная i увеличивается на 1, становится i = 1.
Программа снова проверяет условие i < 5. Поскольку 1 < 5, она входит в тело цикла while.
Программа выводит Current i is: 1.
Переменная i увеличивается на 1, становится i = 2.
Программа проверяет i < 5. Так как 2 < 5, она входит в тело цикла while.
Программа выводит Current i is: 2.
Переменная i увеличивается на 1, становится i = 3.
Программа проверяет i < 5. Поскольку 3 < 5, она входит в тело цикла while.
Программа выводит Current i is: 3.
Переменная i увеличивается на 1, становится i = 4.
Программа проверяет i < 5. Так как 4 < 5, она входит в тело цикла while.
Программа выводит Current i is: 4.
Переменная i увеличивается на 1, становится i = 5.
Программа проверяет i < 5. Поскольку 5 = 5, условие ложно ⇒ программа выходит из цикла while и выводит Done.
Задание
Дано положительное целое число n. Выводите значение n, пока оно больше 0, и делите его на 2 (беря только целую часть).