Python: циклы: разбор для ЕГЭ
Разберём «Python: циклы» так, чтобы тема наконец встала на место: короткая теория, наглядный пример, алгоритм и ошибки, на которых теряют баллы. В конце — что запомнить и где закрепить на практике.
- Зачем нужны циклы и как они приносят первичные баллы
- Цикл for и функция range: перебор известных диапазонов
- Цикл while: работа с неизвестным числом шагов и цифрами числа
- Сравнение конструкций: шпаргалка по выбору цикла
- Разбор типовой задачи: фильтрация чисел на отрезке
- Что запомнить по циклам и твой следующий шаг
Зачем нужны циклы и как они приносят первичные баллы
Кажется, что ручной перебор сотен вариантов на экзамене отнимает всё драгоценное время и приводит к обидным ошибкам в вычислениях. В этой статье мы по шагам разберём циклы for и while в Python, чтобы ты мог уверенно автоматизировать решение заданий 2, 5, 8, 12, 14, 15, 17, 24 и 25 на ЕГЭ по информатике.
Компьютерный формат ЕГЭ превратил программирование в главный инструмент экзамена. Вместо того чтобы вручную строить громоздкие математические модели, школьник может написать короткий скрипт из 5–7 строк. Циклы позволяют выполнять повторяющиеся действия миллионы раз за доли секунды. В Python существует всего два основных типа циклов: со счётчиком (for) и с условием (while). Понимание разницы между ними и умение грамотно организовать перебор значений дают возможность закрыть большую часть первой части и получить уверенный старт во второй части КЕГЭ.
Цикл for и функция range: перебор известных диапазонов
Цикл for применяется в тех случаях, когда количество повторений или набор перебираемых элементов известны заранее. Основой для генерации числовых последовательностей в Python служит встроенная функция range(). Она принимает от одного до трёх параметров: старт, стоп и шаг.
# Перебор от 0 до 4 включительно (всего 5 итераций)
for i in range(5):
print(i) # выведет 0, 1, 2, 3, 4
# Перебор от 10 до 20 с шагом 2
for i in range(10, 21, 2):
print(i) # выведет 10, 12, 14, 16, 18, 20
Цикл for также умеет напрямую перебирать символы строки, элементы списков или кортежей без использования индексов. Это незаменимо при обработке строковых данных в задании 24 или фильтрации пар чисел в задании 17. Если тебе хочется сразу протестировать работу range на практических задачах, открой бесплатный тренажёр Просто Урок и попробуй написать свой первый перебор.
Помни про нестрогую правую границу: вызов range(a, b) всегда завершается на числе b − 1. Если по условию задачи требуется проверить диапазон включительно до 100, в коде обязательно указывай range(1, 101).
Цикл while: работа с неизвестным числом шагов и цифрами числа
Цикл while работает до тех пор, пока истинно заданное логическое условие. В задачах ЕГЭ он чаще всего используется для разбора чисел по разрядам в различных системах счисления (задания 6, 12 и 14), а также для поиска первого подходящего значения, когда верхняя граница диапазона неизвестна.
Классический алгоритм разбора десятичного числа на цифры строится на двух операциях: взятие остатка от деления на основание системы (%) для получения младшей цифры и целочисленное деление (//) для отбрасывания обработанного разряда.
\( n = 175 \)
\( sum_digits = 0 \)
\( while n > 0: \)
digit = n % 10 # получаем последнюю цифру
sum_digits += digit # прибавляем к сумме
n = n // 10 # отбрасываем последнюю цифру
print(sum_digits) # результат: 1 + 7 + 5 = 13
Аналогично разбираются числа в любых системах счисления: например, при переводе числа 25₁₀ в двоичную систему (25₁₀ = 11001₂) мы делим число на 2, собирая остатки в цикле while.
Забытое изменение переменной внутри тела while приводит к вечному циклу и зависанию программы во время экзамена. Всегда проверяй, приближает ли каждая итерация переменную к условию остановки цикла.
Сравнение конструкций: шпаргалка по выбору цикла
Чтобы не путаться во время решения вариантов, полезно заранее представлять, какая синтаксическая конструкция лучше подходит под конкретный тип формулировки задачи. Выбор правильного цикла сокращает объём кода и снижает вероятность технических ошибок.
| Параметр | Цикл for | Цикл while |
|---|---|---|
| Когда использовать | Известен точный диапазон или есть готовая коллекция (строка, список) | Количество итераций заранее неизвестно, есть условие остановки |
| Типичные номера ЕГЭ | № 2 (таблицы истинности), № 8 (комбинаторика), № 17, № 25 | № 6 (исполнители), № 12 (редакторы), № 14 (системы счисления) |
| Управление шагом | Автоматическое через range() или перебор итератора | Ручное изменение переменной внутри тела цикла |
| Риск зависания | Минимальный (диапазон всегда конечен) | Высокий при неверно составленном условии или шаге |
Если сомневаешься, какой алгоритм применить в конкретном задании, загляни в личный кабинет Просто Урок: там собраны типовые шаблоны кода для всех номеров экзамена с подробными пояснениями.
Разбор типовой задачи: фильтрация чисел на отрезке
Рассмотрим прототип задания 17: необходимо найти количество чисел на отрезке [1050; 8950], которые делятся на 7, не делятся на 11 и оканчиваются на 3 или 5, а также определить минимальное из таких чисел.
Для решения объединяем генератор диапазона range() с логическими условиями if и операторами and, or, not.
\( count = 0 \)
\( min_num = 1000000 \)
# Перебираем отрезок от 1050 до 8950 включительно
for x in range(1050, 8951):
# Проверяем делимость и последнюю цифру
\( if (x \% 7 == 0) and (x \% 11 != 0) and (x \% 10 == 3 or x \% 10 == 5): \)
\( count += 1 \)
\( if x < min_num: \)
\( min_num = x \)
print(count, min_num)
Алгоритм последовательно проверяет каждое число из интервала. Если условие истинно, счётчик увеличивается на 1, а переменная min_num обновляется. Программа выполняется меньше чем за одну секунду, гарантируя безошибочный ответ без ручных вычислений.
Что запомнить по циклам и твой следующий шаг
Для успешного применения циклов на экзамене держи в памяти четыре ключевых правила:
1. range(a, b) всегда исключает число b — всегда добавляй единицу к правой границе диапазона поиска.
2. Цикл while незаменим для разбора чисел по цифрам через операции % и //.
3. Оператор break мгновенно прерывает выполнение цикла, а continue переходит к следующей итерации.
4. Вложенные циклы for отлично подходят для перебора таблиц истинности в задании 2 (перебор переменных x, y, z, w со значениями 0 и 1).
Закрепи теорию на реальных задачах: зарегистрируйся в личном кабинете Просто Урок и реши 5 тренировочных заданий по теме бесплатно прямо сейчас.
Частые вопросы
Чем отличаются операторы break и continue?
Оператор break полностью останавливает работу цикла, а continue пропускает остаток текущей итерации и сразу переходит к следующему шагу.
Можно ли обойтись на ЕГЭ только циклом for?
Большинство переборных задач решаются через for, однако для обработки динамических строк в задании 12 и разбора систем счисления удобнее применять while.
Как перебрать все комбинации из 4 переменных в задании 2?
Используй четыре вложенных цикла for x in 0, 1: for y in 0, 1: for z in 0, 1: for w in 0, 1: для полной проверки всех 16 наборов значений.
Как закрепить тему после разбора?
Перейди в бесплатный личный кабинет Просто Урок по ссылке на страницу авторизации и пройди интерактивный онлайн-тренажёр с проверкой кода.
Закрепить тему на практике
Теория без практики забывается за неделю. В личном кабинете Просто Урок — задания именно по этой теме с проверкой каждого шага. Регистрация бесплатная.