Статья

Python: условные операторы: разбор для ЕГЭ

3 сентября 2026~8 минут11 класс

Пять минут на эту статью — и «Python: условные операторы» перестанет пугать. Внутри: теория без воды, рабочий алгоритм, разбор типового задания и список частых ошибок.

Как устроены ветвления в Python и зачем они на ЕГЭ

Ошибки в условиях — самая частая причина потери первичных баллов в программных номерах ЕГЭ по информатике, от базового задания 6 до сложных задач 17, 24 и 27. В этой статье мы разберём логику работы условных операторов с нуля до уровня экзамена, чтобы ты перестал путаться в ветвлениях и писал безошибочный код.

В основе любого ветвления лежит логическое выражение, которое принимает одно из двух значений: True (истина) или False (ложь). Конструкция if проверяет условие: если оно истинно, выполняется блок команд с отступом в четыре пробела. Если условие ложно, программа просто пропускает этот блок и идёт дальше.

\( x = int(input()) \)
\( if x > 0: \)
    print("Число положительное")

Когда сценариев больше одного, добавляется блок else (иначе). Он выполняется только тогда, когда условие в if оказалось ложным. Это позволяет четко разделить поток выполнения программы на взаимоисключающие ветки, что критически важно при фильтрации данных.

Операторы сравнения и логические связки

В условиях мы сравниваем переменные между собой и с конкретными константами. Python поддерживает стандартный набор операций сравнения: равенство (==), неравенство (!=), больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=). Обрати внимание: одиночный знак равенства служит для присваивания, а двойной — для проверки равенства.

Для построения сложных условий используются логические связки and (логическое И), or (логическое ИЛИ) и not (логическое НЕ). Они работают строго по законам математической логики, которые также проверяются в задании 2 и задании 15.

Оператор Значение Когда возвращает True
and Конъюнкция (логическое И) Только если ОБА условия истинны
or Дизъюнкция (логическое ИЛИ) Если ХОТЯ БЫ ОДНО условие истинно
not Инверсия (логическое НЕ) Если исходное условие ложно
Ловушка

Приоритет у and выше, чем у or. Выражение a or b and c сначала вычислит b and c, и только потом применит or к результату. Если тебе нужен другой порядок, всегда ставь круглые скобки: (a or b) and c.

Множественный выбор: цепочки if-elif-else

Когда задача требует проверить несколько условий подряд, на помощь приходит ключевое слово elif (сокращение от else if). Программа проверяет ветки сверху вниз до первого истинного условия. Как только подходящая ветка найдена, её код выполняется, а все последующие блоки elif и else полностью игнорируются.

В отличие от цепочки независимых if, конструкция с elif экономит ресурсы процессора и защищает от логических наложений. Например, при анализе чисел из файла на кратность сразу нескольким делителям порядок проверки условий играет решающую роль.

\( if n \% 6 == 0: \)
    print("Делится на 6")
\( elif n \% 2 == 0: \)
    print("Только четное")
\( elif n \% 3 == 0: \)
    print("Делится только на 3")
else:
    print("Не делится ни на 2, ни на 3")

Удобная особенность Python — возможность писать естественные двойные неравенства вида 10 <= x <= 99, что заметно упрощает код в сравнении с другими языками. Отработать написание таких цепочек на реальных задачах можно в бесплатном тренажёре Просто Урок.

Разбор типовой задачи из ЕГЭ (прототип задания 17)

Рассмотрим фрагмент задачи, где требуется перебрать числа от 1000 до 9999 и отобрать те, которые оканчиваются на 3 или 7, но при этом не делятся нацело на 5 и на 11. Найдём количество таких чисел и их сумму.

Разобьём условие на логические составляющие. Последняя цифра определяется как остаток от деления на 10 (n % 10). Неделимость на 5 и 11 записывается через оператор and с проверкой неравенства остатка нулю.

\( count = 0 \)
\( total_sum = 0 \)
for n in range(1000, 10000):
\(     if (n \% 10 == 3 or n \% 10 == 7) and (n \% 5 != 0) and (n \% 11 != 0): \)
\(         count += 1 \)
\(         total_sum += n \)
print(count, total_sum)

Обрати внимание на скобки вокруг проверки последней цифры. Без них логическое И связало бы проверку n % 10 == 7 с проверкой делимости, а условие n % 10 == 3 проверялось бы отдельно, что привело бы к неверному ответу.

Совет репетитора

Всегда выноси громоздкие составные условия в отдельные логические переменные с понятными именами: cond1 = (n % 10 == 3), cond2 = (n % 5 != 0). Код станет чище, и ты избежишь досадных описок на экзамене.

Мини-практикум для быстрой самопроверки

Попробуй устно определить, что выведет следующий фрагмент программы при различных входных данных. Это отличный способ проверить своё понимание приоритетов операций и порядка ветвления.

\( a = 15 \)
\( b = 20 \)
\( if a > 10 or b > 30 and a == 15: \)
    print("Вариант 1")
else:
    print("Вариант 2")

Пошаговый анализ: сначала вычисляется b > 30 and a == 15. Так как 20 > 30 ложно (False), результат конъюнкции равен False. Затем вычисляется a > 10 or False. Поскольку 15 > 10 истинно (True), общее условие принимает значение True, и программа выведет «Вариант 1».

Если ты хочешь потренироваться на других примерах с подробным авторазбором решений, открой личный кабинет Просто Урок и проверь себя на банке авторских вопросов.

Что запомнить: шпаргалка и следующий шаг

Главные правила работы с ветвлениями в Python для успешной сдачи ЕГЭ:

1. Проверка равенства — это всегда два знака ==, а не один =.
2. Логическое and требует одновременной истинности всех частей, or — хотя бы одной.
3. Приоритет операций: сначала not, затем and, в конце or. При любых сомнениях используй круглые скобки.
4. В конструкции if-elif-else срабатывает только первая подошедшая ветка, остальные пропускаются.
5. Двойные неравенства вида a <= x <= b работают в Python корректно и без дополнительных связок.

Теория усваивается только через пальцы и код. Переходи по ссылке, зарегистрируйся в личном кабинете и реши 5 тренировочных заданий по условным операторам прямо сейчас.

Частые вопросы

В чём разница между несколькими if и конструкцией if-elif-else?

Последовательные блоки if проверяются программой всегда и независимо друг от друга. В конструкции if-elif-else после первого же истинного условия все последующие проверки пропускаются.

Можно ли в Python писать тройные и двойные сравнения в одном условии?

Да, Python полностью поддерживает цепочки сравнений вида 0 <= x < 100 == y. Это официальный синтаксис языка, работающий как эквивалент связки через оператор and.

Обязательно ли указывать блок else в конце ветвления?

Нет, блок else является необязательным. Если альтернативного действия при ложном условии выполнять не требуется, блок else просто опускают.

Как закрепить тему после разбора?

Перейди в бесплатный личный кабинет на сайте Просто Урок и реши тематическую подборку задач в интерактивном тренажёре с мгновенной проверкой ответов.

Не оставляйте тему «прочитанной»

Понимание — половина дела. Вторая половина — практика с обратной связью: личный кабинет Просто Урок покажет, где вы ошибаетесь, и подтянет слабые места.

Важно. Материалы сайта носят информационно-образовательный характер и не являются публичной офертой (ст. 437 ГК РФ), индивидуальной консультацией или руководством к действию. Мы аккуратно работаем с фактами, но не гарантируем полную точность и актуальность: структура и правила экзаменов могут меняться — сверяйтесь с официальными источниками (ФИПИ, действующие кодификаторы и нормативные акты РФ). Администрация сайта не несёт ответственности за возможные неточности и за решения, принятые на основе материалов. Заметили неточность — напишите нам, мы исправим.