Найти в Дзене

Цикл for в Python: как управлять повторениями с точностью и изяществом

Цикл for в языке Python — это управляющая конструкция, предназначенная для многократного выполнения блока кода. В отличие от других языков (например, C или Java), где цикл for работает с счётчиками и условиями, в Python он реализован как итератор по последовательностям. 💡 Итерация — это процесс последовательного перебора элементов коллекции (списка, строки, диапазона и т.д.). Это делает for не только мощным, но и интуитивно понятным инструментом: вы буквально говорите программе: «Для каждого элемента в этой коллекции сделай вот это». 🔍 Как работает цикл for: пошаговое объяснение Рассмотрим простой пример: Пошагово: ⚠️ Важно: переменная цикла (i) не исчезает после завершения цикла. Она сохраняет значение последнего элемента. Это особенность Python, которую нужно учитывать при отладке. Запись на занятия здесь: https://t.me/nka39 На практике чаще всего цикл for используется с функцией range(), которая генерирует последовательность целых чисел без необходимости хранить их все в памяти ср
Оглавление

📚 Теоретическая основа: что такое цикл for?

Цикл for в языке Python — это управляющая конструкция, предназначенная для многократного выполнения блока кода. В отличие от других языков (например, C или Java), где цикл for работает с счётчиками и условиями, в Python он реализован как итератор по последовательностям.

💡 Итерация — это процесс последовательного перебора элементов коллекции (списка, строки, диапазона и т.д.).

Это делает for не только мощным, но и интуитивно понятным инструментом: вы буквально говорите программе:

«Для каждого элемента в этой коллекции сделай вот это».

🔧 Список используемых команд и конструкций

-2

🔍 Как работает цикл for: пошаговое объяснение

Рассмотрим простой пример:

-3

Пошагово:

  1. Интерпретатор Python создаёт итератор из списка [1, 2, 3].
  2. На первой итерации переменная i получает значение первого элемента — 1. Выполняется тело цикла: print(1).
  3. На второй итерации i = 2, выводится 2.
  4. На третьей — i = 3, выводится 3.
  5. Когда элементы заканчиваются, цикл завершается, и программа продолжает выполнение после него.
⚠️ Важно: переменная цикла (i) не исчезает после завершения цикла. Она сохраняет значение последнего элемента. Это особенность Python, которую нужно учитывать при отладке.
-4

Запись на занятия здесь: https://t.me/nka39

🎯 Функция range(): генерация последовательностей

На практике чаще всего цикл for используется с функцией range(), которая генерирует последовательность целых чисел без необходимости хранить их все в памяти сразу.

Три формы использования range():

-5
🔸 Обратите внимание: последнее число (stop) не включается в последовательность. Это правило соблюдается во всём Python (например, при срезах строк).

Пример:

-6

Что происходит на каждой строке:

  • range(1, 11) создаёт виртуальную последовательность: 1, 2, ..., 10.
  • На каждой итерации переменная n принимает очередное значение.
  • Вычисляется n² и выводится в читаемом формате.

🔄 Вложенные циклы for: работа с двумерными данными

Когда задача требует перебора пар значений (например, координат, индексов матрицы, комбинаций), используют вложенные циклы.

Пример: вывод таблицы умножения 3×3

-7

Подробный разбор:

  • Внешний цикл запускается один раз для каждого значения i.
  • Для каждого i внутренний цикл проходит все значения j.
  • Таким образом, перебираются все пары: (1,1), (1,2), (1,3), затем (2,1), (2,2) и т.д.
  • end=" " в print() предотвращает переход на новую строку после каждого произведения.
  • Отдельный print() без аргументов добавляет перевод строки после завершения строки таблицы.
💡 Правило: количество итераций вложенного цикла = длина_внешней × длина_внутренней.

🛑 Управление ходом цикла: break и continue

Иногда нужно прервать цикл или пропустить текущую итерацию. Для этого существуют две специальные команды.

break — немедленный выход из цикла

-8

Результат:
1, 2, 3, 4, 5, 6, 7
(Потому что 8² = 64 > 50)

🔸 break завершает только самый внутренний цикл, если циклы вложены.

continue — переход к следующей итерации

-9

Результат:
1, 3, 5, 7, 9

🔸 После continue оставшийся код в теле цикла не выполняется.

📌 Роль отступов в цикле for

Как и в конструкции if, в Python отступы определяют границы тела цикла. Это не просто стиль — это синтаксическое правило.

Пример ошибки:

-10

Правильно:

-11

🧩 Практический пример: поиск суммы двух степеней двойки

Рассмотрим задачу: найти наименьшее число больше 2 000 000, которое можно представить как сумму двух различных степеней двойки.

-12

Объяснение ключевых моментов:

  • range(a + 1, 31) гарантирует, что b ≠ a и не будет дублирования пар.
  • Конструкция for-else: блок else выполняется, если цикл завершился без break.
  • Двойной break позволяет выйти из обоих циклов сразу.

НЕБОЛЬШОЕ ИСПРАВЛЕНИЕ

Текущий код находит первую попавшуюся сумму > 2 000 000 при переборе с a=0, а не наименьшую сумму.

Код найдёт 2^0 + 2^21 = 2 097 153, но это действительно правильный ответ для данной задачи!

Можно исправить, собирая все суммы и выбирать минимальную

-13

Если Вам информация была для Вас полезна, то можно поддержать автора, нажав на кнопку "Поддержать".

Подпишитесь на канал и научитесь решать все задания ЕГЭ по информатике!

Удачи на экзамене!

Записаться ко мне на занятия можно тут https://t.me/nka39

✍️ Практические задания для самостоятельной работы

  1. Базовое: Напишите цикл for, который выводит все чётные числа от 10 до 50 включительно.
  2. С range: Используя range(), выведите числа от 100 до 0 с шагом -5.
  3. Вложенные циклы: Нарисуйте «прямоугольник» из звёздочек размером 4×6 с помощью вложенных циклов.
  4. С continue: Выведите все числа от 1 до 20, кроме кратных 3.
  5. Творческое: Найдите все трёхзначные числа, которые равны сумме кубов своих цифр (например, 153 = 1³ + 5³ + 3³).

Продолжение следует в следующей статье серии…