Цикл – это повторение. Повторение одних и тех же действий. В Python имеются специальные операторы, отвечающие за повторения.
Сразу к примерам. Возьмём уже знакомый нам список студентов из темы Списки.
Допустим нам надо вывести этот список. Причём каждая фамилия должна быть на новой строке и с заглавной буквы (вспоминаем метод title()). Решить данную задачу можно вручную:
Так конечно можно. Но что делать если в списке гораздо больше элементов. Получится огромный код и куча рутинной работы. Так что доверим это дело циклу for.
Теперь разберём что же тут написано.
Переменная цикла поочерёдно принимает значения всех элементов списка. В теле цикла записываются действия, которые требуется повторить.
Обратите внимание на двоеточие в конце строки "for ... in ... :" и отступ в 4 пробела для тела цикла. Об отступах надо бы поговорить отдельно, сделаю это в следующей записи (уже сделал).
А пока посмотрим на весь код целиком. И допишем в конце ещё одну строчку.
И на результат
Цикл автоматически перебрал все элементы списка students, применил к ним метод title() и вывел на экран. Отличная работа, цикл!
Обратите внимание на то, что последняя строка не имеет отступа в 4 пробела. Это потому, что она не должна входить в тело цикла.
Что ещё надо знать. Каждое выполнение тела цикла называется итерацией. В данном примере 3 итерации, т.е. 3 повторения.
А теперь рассмотрим ещё один вариант применения цикла for.
Допустим, надо получить и обработать некий диапазон чисел. Например, получить сумму чисел от 1 до 10.
Для начала научимся просто генерировать эти числа. Используем функцию range() – диапазон.
Всё дело в том, что диапазон считается начиная с 0 и выдаёт заданное количество значений. В нашем случае десять значений 0-9. Для того чтобы получить необходимый диапазон, укажем его более явно.
Ещё раз обращаю внимание на то, что функция range(a, b) возвращает значения от a до b-1.
Можно использовать и отрицательные числа, главное чтобы соблюдалось условие a<b.
Если же есть необходимость вывести значения в обратном порядке, то воспользуемся функцией reversed().
Но вернёмся к нашей задаче, подсчитать сумму чисел от 1 до 10. Как получать числа мы уже знаем, осталось суммировать.
Переменная amount хранит ту самую сумму, но изначально мы присваиваем ей значение 0.
Запись вида:
соответствует записи
На этом пока всё, если что не понятно, спрашивайте в комментариях.