В Python для записи циклов используются 2 вида команд: while и for.
Цикл while
While переводится с английского как «пока», то есть цикл (блок команд) выполняется до тех пор, пока не выполнится заданное условие. Для этого в начале очередного шага цикла выполняется проверка условия. Поэтому оно называется циклом с предусловием.
Задача 1. Запишем программу для вывода на экран всех целых чисел от 1 до 5.
Задача 2. Рассмотрим пример: определите количество цифр в десятичной записи целого положительного числа. Будем предполагать, что исходное число записано в переменную n целого типа. Для решения задачи нужно использовать переменную – счетчик, значение которой меняется с каждым новым проходом цикла. Для подсчета количества цифр нужно как-то отсекать эти цифры по одной, с начала или с конца, каждый раз увеличивая счетчик. Начальное значение счетчика должно быть равно нулю, так как до выполнения алгоритма еще не найдено ни одной цифры. Чтобы отсечь последнюю цифру, достаточно разделить число нацело на 10. Операции отсечения и увеличения счетчика нужно выполнять столько раз, сколько цифр в числе. Как только результат очередного деления на 10 будет равен нулю, это и говорит о том, что отброшена последняя оставшаяся цифра. Программа на Python выглядит так:
Количество проходов цикла будет равно количеству цифр введенного числа, то есть зависит от исходных данных. Если условие в заголовке цикла никогда не нарушится, цикл будет работать бесконечно долго. В этом случае говорят, что «программа зациклилась». Чтобы остановить зацикленную программу, нужно нажать на Ctrl+C в окне консоли.
Цикл for
Цикл for повторяет команды необходимое количество раз. Данная команда позволяет сделать программу компактнее. Рассмотрим предыдущий пример с использованием цикла for:
Здесь переменная i (ее называют переменной цикла) изменяется в диапазоне (in range) от 0 до 5, не включая 5 (то есть от 0 до 4-х включительно). Таким образом, цикл выполняется ровно 5 раз. Для того чтобы нам получить идентичный ответ (как в случае с while), изменим нашу программу:
Задача 2. Выведем степени числа два от 2 в первой степени до 2 в десятой степени (k = степени двойки).
В первом варианте переменная k используется трижды: для присвоения начального значения, в условии цикла и в теле цикла (увеличение на 1). Во втором варианте переменная k задается диапазоном (range) из двух чисел – начальным и конечным значением, причем конечное значение не входит в диапазон. Шаг изменения переменной цикла по умолчанию равен 1. Если его нужно изменить, указывают третье (необязательное) число в скобках после слова range – это нужный шаг. Например, такой цикл выведет только нечетные степени числа 2:
С каждым шагом цикла переменная цикла может не только увеличиваться, но и уменьшаться. Для этого начальное значение должно быть больше конечного, а шаг – отрицательным. Следующая программа печатает квадраты натуральных чисел от 5 до 1 в порядке убывания: