Циклы
Представим ситуацию, когда нам необходимо вывести на экран слово "
Hello
" 10 раз. Как нам поступить?
Можно взять и 10 раз написать команду
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
А что если надо не 10 раз, а 20, 30, 40 раз? А если 200 раз? В этом случае копирование займет очень много времени. А если необходимо, чтобы пользователь сам мог выбирать сколько раз ему необходимо вывести на экран какую-либо информацию?
Справиться с такой задачей нам поможет специальная конструкция,
которая называется
цикл.
Цикл - это алгоритмическая конструкция, в которой некоторая последовательность команд повторяется несколько раз.
В большинстве языков программирования различают два вида циклов: цикл с переменной (
for
) и цикл с условием (
while
)
Начнем знакомство с циклами с первого вида.
Цикл с переменной, или с известным числом шагов (цикл for
)
Очень часто бывает, что мы знаем число повторений каких-либо действий или же можем число повторений вычислить через известные нам данные. В некоторых языках программирования есть команда, которая на русском языке записывается командой
ПОВТОРИ (количество_повторений)
.
В этом случае мы можем указать конкретное число повторений.
Интересно проследить, как работает этот цикл на машинном уровне:
1. в памяти выделяется определенная ячейка памяти и в нее записывается число повторений,
2. когда программа выполняет тело цикла один раз, содержимое этой ячейки (счетчик) уменьшается на единицу.
3. выполнение цикла заканчивается, когда в этой ячейке будет ноль.
В языке Python нет такой конструкции, но есть конструкция
for
.
Надо запомнить!
Общая форма записи оператора цикла
for
выглядит следующим образом:
for <переменная-счетчик> in <значения переменной-счетчика>:
# тело цикла
1. Имя переменной-счетчика может быть любым (чаще используют букву
i
)
2. Тело цикла записывается со сдвигом вправо, относительно строки с заголовком цикла (for). По стандарту PEP8 сдвиг осуществляется на 4 пробела.
Посмотрим примеры как можно записать вывод слова "
Hello
" 10 раз.
Пример 1
for i in range(10): # для переменной i, изменяемой в диапазоне (in range)
# от 0 до 10 (10 не включается)
print("Hello") # печатать Hello
Переменная
i
- это счетчик выполненных итераций (шагов) цикла. В данном случае цикл выполняется для
i
= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. То есть ровно 10 раз.
Эту же программу можно записать по-другому.
Пример 2
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print("Hello")
В примере 2 мы перечисляем все значения переменной
i
, при которых необходимо выполнить цикл. При большом количестве значений удобнее использовать встроенную функцию
range().
Последовательность значений, которую строит функция
range()
конечна. Цикл всегда закончится.