
Тест Python. Цикл while
Python для создания сайтов
Python для создания сайтов используется в некоторых компания. Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается к телу цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
Синтаксис цикла while в простейшем случае выглядит так:

При выполнении цикла while сначала проверяется условие. Если оно ложное, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.
Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10. Видно, что цикл while может заменять цикл for ... in range(...)
:

В этом примере переменная i
внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i
будет равно 11
, поскольку именно при i == 11
условие i <= 10
впервые перестанет выполняться.
Вот еще один пример использования цикла while для определения количества цифр натурального числа n
:

В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 (n //= 10
), при этом считаем в переменной length
, сколько раз это было сделано.
В языке Питон есть и другой способ решения этой задачи: length = len(str(i))
.
2. Инструкции управления циклом
После тела цикла можно написать слово else:
и после него блок операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверно:

Можно было бы подумать, что в этом нет смысла, так как эту же инструкцию можно просто написать после окончания цикла. Смысл появляется только вместе с инструкцией break
. Если во время выполнения Питон встречает инструкцию break
внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него. При этом ветка else
исполняться не будет. Разумеется, инструкцию break
осмысленно вызывать только внутри инструкции if
, то есть она должна выполняться только при выполнении какого-то особенного условия.
Приведем пример программы, которая считывает числа до тех пор, пока не встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).

Во втором варианте программы сначала на вход подается количество элементов последовательности, а затем и сами элементы. В таком случае удобно воспользоваться циклом for
. Цикл for
также может иметь ветку else
и содержать инструкции break
внутри себя.

Другая инструкция управления циклом — continue
(продолжение цикла). Если эта инструкция встречается где-то посередине цикла, то пропускаются все оставшиеся инструкции до конца цикла, и исполнение цикла продолжается со следующей итерации.
Если инструкции break
и continue
содержатся внутри нескольких вложенных циклов, то они влияют лишь на исполнение самого внутреннего цикла. Вот не самый интеллектуальный пример, который это демонстрирует:

Увлечение инструкциями break
и continue
не поощряется, если можно обойтись без их использования. Вот типичный пример плохого использования инструкции break
(данный код считает количество знаков в числе).

Гораздо лучше переписать этот цикл так:

Впрочем, на Питоне можно предложить и более изящное решение:
Приглашаем повысить свои навыки программирования у нас в школе онлайн или в офисе на м. Академгородок, м. Житомирская.