9 мин чтения

Python с нуля для ЕГЭ по информатике — минимум, который нужно выучить, и в каком порядке

Что нужно знать из Python для ЕГЭ по информатике, если начинаешь с нуля: 9 тем в порядке изучения с привязкой к заданиям, рабочий код, план на 4 недели, типичные ошибки новичков.

Ты не писал код вообще, а сдавать ЕГЭ по информатике собираешься — и почти всё, что даёт баллы выше 60, требует программирования. Хорошая новость: для экзамена не нужен весь язык. Ниже — Python для ЕГЭ по информатике с нуля: девять тем, которые нужно знать, в порядке изучения, с рабочим кодом, привязкой к заданиям и планом на 4 недели.

Что нужно знать из Python для ЕГЭ на самом деле

Экзамен не проверяет знание Python как таковое: язык — инструмент, которым ты считаешь ответ. Программу никто не читает, проверяется только число в поле ответа. Поэтому важен не «красивый код», а умение за 5–10 минут написать 10 строк, которые не врут.

Из всего Python на ЕГЭ регулярно используется небольшой набор конструкций. Вот они — в том порядке, в котором их удобно учить, и с заданиями, которые каждая тема открывает.

#ТемаЧто именноОткрывает задания
1Ввод/вывод, типы, арифметикаinput, print, int, str, //, %, **14, 25
2Условия и логикаif/elif/else, and, or, not, сравнения2, 15
3Циклыfor + range, while, break5, 12, 22, 23
4Спискииндексы, срезы, append, sorted, min/max/sum17, 26
5Строкиcount, find, replace, in, срезы24, 8
6Функции и рекурсияdef, return, вызов самой себя16, 23
7Чтение файлаopen, readlines, split, int17, 24, 26, 27
8Словари и множестваdict, get, set, &, len26, 27
9Перебор всех вариантоввложенные циклы, itertools.product2, 8, 15

Если умеешь всё из таблицы — Python для ЕГЭ ты знаешь. Дальше идёт не язык, а сами задания. Ускорять код идиомами (списковые включения, Counter, lru_cache) можно потом — для этого есть отдельная подборка, но она для тех, кто уже пишет. Здесь — старт. Почему именно Python, а не C++ или Pascal, разобрано в сравнении языков для КЕГЭ: коротко — для новичка это самый быстрый путь к баллам.

Как поставить Python и где писать код

Три варианта — от простого к удобному:

  • IDLE. Ставится вместе с Python с сайта python.org (при установке на Windows отметь галочку «Add Python to PATH»). Примитивно, зато ничего настраивать не нужно. Для старта достаточно.
  • VS Code + расширение Python. Бесплатно, подсветка, подсказки, запуск одной кнопкой. Самый популярный вариант у школьников.
  • PyCharm Community. Тяжелее, но всё «из коробки». Если компьютер тянет — хороший выбор.

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

Важный момент про экзамен: на станции КЕГЭ ставить ничего не нужно — среды программирования там уже установлены (Python, C++, Java, C#, Pascal, школьный алгоритмический язык), плюс электронные таблицы и текстовый редактор. Но это будет не та среда, к которой ты привык, а какая именно — зависит от пункта проведения. Поэтому хотя бы часть тренировок делай в IDLE или другом «голом» редакторе: привыкай сам ставить скобки и следить за отступами, не надеясь на автодополнение.

Блок 1: числа, условия, циклы

Первые три темы — фундамент. Без них не решается вообще ничего, зато с ними уже открываются 14, 25, 22 и часть заданий 2, 5, 15.

Ввод, вывод, типы, арифметика → 14, 25

n = int(input())          # input() всегда даёт строку, int() делает число
print(n // 10, n % 10)    # для 2025: 202 5 — целая часть и остаток
print(2 ** 10)            # 1024 — степень
print(len(str(n)))        # 4 — число цифр: превратили в строку и измерили
print(int("1011", 2))     # 11 — перевод из двоичной, база для задания 14

Ключевые операторы — // (целочисленное деление), % (остаток), ** (степень). Обычное / даёт дробное число даже для 10 / 2 — на ЕГЭ оно почти не нужно. Именно % и // — сердце задания 25 на делители и ручного перевода систем счисления.

Упражнение. Введи трёхзначное число и выведи сумму его цифр, используя только // и %. Для 473 должно получиться 14.

Условия и логические операции → 2, 15

x = 12
if x % 2 == 0 and x > 10:
    print("чётное и больше 10")
elif x % 2 == 0:
    print("чётное")
else:
    print("нечётное")
print(not (x < 5) or x == 12)   # True — так же считаются выражения в 2 и 15

Три вещи, которые нужно усвоить: сравнение — это ==, а не =; and сильнее or, поэтому в сомнительных местах ставь скобки; блок после if пишется с отступом в 4 пробела, и отступ — это часть синтаксиса, а не оформление.

Упражнение. Введи год и выведи, високосный ли он: делится на 4, но не на 100 — или делится на 400. Проверь себя на 1900 (не високосный) и 2000 (високосный) — на этой паре ломается наивное «делится на 4».

Циклы for/range и while → 5, 12, 22, 23

for i in range(1, 6):     # 1 2 3 4 5 — правая граница не входит
    print(i, end=" ")
print()
n = 100
steps = 0
while n > 1:              # крутимся, пока условие истинно
    n //= 2
    steps += 1
print(steps)              # 6

for — когда заранее знаешь, сколько итераций; while — когда крутишься до условия. В задании 22 программу с циклом нужно уметь прочитать глазами и предсказать вывод; в 5 и 12 — наоборот, написать короткий симулятор и прогнать на нём десятки вариантов вместо ручной трассировки.

Упражнение. Выведи сумму всех чисел от 1 до 1000, которые делятся на 3, но не делятся на 5. Правильный ответ — 133 668. Не сошлось на 1000 — почти наверняка забыл, что range(1, 1000) заканчивается на 999.

Блок 2: списки, строки, функции

Здесь начинаются задания второй половины экзамена: 17, 24, 16.

Списки, срезы, sorted/min/max/sum → 17, 26

a = [5, 3, 8, 1, 9, 2]
print(a[0], a[-1], a[1:4])        # 5 2 [3, 8, 1] — индексы с нуля, срез без конца
print(sum(a), min(a), max(a))     # 28 1 9
print(sorted(a))                  # [1, 2, 3, 5, 8, 9]
b = []
for x in a:
    if x % 2 == 1:
        b.append(x)               # собираем нечётные в новый список
print(b, len(b))                  # [5, 3, 1, 9] 4

Список — главная структура данных экзамена. Индекс a[-1] — последний элемент, срез a[i:j] — элементы с i по j−1. Типовой приём задания 17: пройти по парам соседей a[i] и a[i+1] циклом for i in range(len(a) - 1).

Упражнение. Для списка чисел найди количество элементов, которые больше среднего арифметического. Для [4, 8, 15, 16, 23, 42] среднее равно 18, ответ — 2.

Строки и методы → 24, 8

s = "abracadabra"
print(s.count("a"), s.find("cad"))   # 5 4 — сколько раз и с какой позиции
print(s.replace("a", "*"))           # *br*c*d*br*
print(s[:4], s[-3:], s[::-1])        # abra bra arbadacarba
print("bra" in s)                    # True

Строка ведёт себя как список символов: те же индексы и срезы, плюс методы. count, find, replace и цикл while со сжатием строки — это практически всё, что нужно для задания 24. В задании 8 строки нужны, чтобы собрать все «слова» и отфильтровать нужные.

Упражнение. Проверь, читается ли строка одинаково слева направо и справа налево, без цикла — одним срезом. Для «шалаш» ответ True, для «шалун» — False.

Функции и рекурсия → 16, 23

def F(n):
    if n < 2:               # база — без неё рекурсия никогда не остановится
        return 1
    return F(n - 1) + n     # шаг — сводим задачу к меньшему n

print(F(5))                 # 15

Функция — кусок кода с именем, который принимает аргументы и возвращает результат через return. Рекурсия — функция вызывает саму себя, и в задании 16 её буквально дают формулой: переносишь в код и запускаешь. В 23 рекурсия — один из двух способов посчитать число программ исполнителя.

Упражнение. F(1) = 1, F(n) = 2·F(n − 1) при n > 1. Найди F(10) — должно получиться 512.

Блок 3: файлы, словари, перебор

Последние три темы открывают самые дорогие задания — 26 и 27 по два балла — и позволяют брать 2, 8 и 15 перебором вместо теории.

Чтение файла → 17, 24, 26, 27

f = open("17.txt")             # файл лежит в той же папке, что и программа
a = []
for line in f.readlines():     # список строк файла: ["12\n", "-5\n", ...]
    a.append(int(line))        # int() сам отбрасывает перевод строки
print(len(a), min(a), max(a))
x, y = "3 7".split()           # "3 7" → ["3", "7"] — так читают пары чисел в 26 и 27
print(int(x) + int(y))         # 10

В 17, 26 и 27 данные лежат в файле — тысячи чисел. Три действия: open, прочитать строки, превратить каждую в int. Если в строке несколько чисел через пробел — split(). Одна тонкость: файл нужно сохранить рядом с программой, иначе Python его не найдёт.

Упражнение. Создай файл с десятью числами по одному в строке и выведи, сколько среди них чётных. Потом добавь в конец файла пустую строку и посмотри, какой ошибкой это обернётся, — на реальных данных такое встречается.

Словари и множества → 26, 27

words = ["да", "нет", "да", "да", "нет", "может"]
cnt = {}
for w in words:
    cnt[w] = cnt.get(w, 0) + 1     # словарь: слово → сколько раз встретилось
print(cnt)                          # {'да': 3, 'нет': 2, 'может': 1}
print(len(set(words)))              # 3 — множество убирает повторы
print(set([1, 2, 3]) & set([2, 3, 4]))   # {2, 3} — пересечение

Словарь — «ключ → значение», нужен для подсчётов: сколько раз встретилось число, сколько пар с одинаковым остатком. Множество — быстрая проверка «есть ли такой элемент» и уникальность. В 26 и 27 они превращают перебор, который работает минутами, в решение за секунду.

Упражнение. Для списка чисел найди значение, которое встречается чаще всего: сначала собери словарь «число → количество», потом пройди по нему и запомни ключ с максимальным значением. Для [3, 1, 3, 7, 7, 7, 2] ответ — 7.

Перебор всех вариантов → 2, 8, 15

from itertools import product
cnt = 0
for x, y, z in product([0, 1], repeat=3):   # все 8 наборов из трёх битов
    if (x or y) and not z:
        cnt += 1
print(cnt)                                  # 3
for a in range(1, 4):                       # вложенные циклы — все пары (a, b)
    for b in range(1, 4):
        if a + b == 4:
            print(a, b, end="; ")           # 1 3; 2 2; 3 1;

product перебирает все комбинации значений: для 2 это строки таблицы истинности, для 8 — все слова заданной длины, для 15 — все числа из отрезка, на которых проверяют формулу. Ученики с математической подготовкой решают 2 и 15 на бумаге; тебе с нуля быстрее и надёжнее перебрать.

Упражнение. Выведи все трёхбуквенные слова из букв А, Б, В, в которых буква А встречается ровно один раз (их 12).

Что НЕ нужно учить для ЕГЭ

Учебники по Python на 600 страниц написаны для будущих разработчиков, а не для экзамена. Смело пропускай:

  • Классы и ООП. Ни одно задание не требует своих классов.
  • Декораторы, генераторы с yield, замыкания. @lru_cache — единственный декоратор, который пригодится, и его достаточно скопировать из готового примера.
  • Исключения try/except. Данные в заданиях корректные, ловить нечего.
  • numpy, pandas и другие внешние библиотеки. Рассчитывать на них нельзя: гарантирована только стандартная поставка Python, а всё, что нужно на экзамене, в ней есть.
  • Свои модули, пакеты, виртуальные окружения, тесты. Программа на экзамене — один файл на 15 строк. При этом подключать готовые модули из стандартной библиотеки (math, itertools) одной строкой import — нужно и нормально.
  • Ввод с клавиатуры в сложных форматах. Почти везде данные из файла или заданы в условии.

Каждый час, потраченный на ООП вместо задания 17, — это минус балл на экзамене.

План на 4 недели: как выучить Python для ЕГЭ за месяц

Реальный темп для человека без опыта — 1–1,5 часа в день, 5 дней в неделю. Быстрее можно, но тогда не будет времени на упражнения, а без них конструкции не запоминаются.

НеделяТемыЧто уже можно решать
1Ввод/вывод, типы, арифметика, условия, циклы14 (перевод через цикл или int(s, b)), 25 (простые), 22, 5
2Списки и срезы, строки, функции и рекурсия16, 24 (простые), 17 (без файла, на списке из условия), 12
3Чтение файла, словари, множества17 полностью, 24 полностью, 26 и 27 (базовые типы)
4Вложенные циклы, product, повторение всего2, 8, 15 перебором + мини-вариант из 8–10 заданий

Каждый день — по одной схеме: 20 минут читаешь и запускаешь примеры темы, 40 минут решаешь 3–5 задач на неё, 10 минут возвращаешься к теме позавчерашнего дня. К концу четвёртой недели ты не «выучил Python», но можешь подступиться примерно к половине заданий экзамена — дальше вопрос уже не в языке, а в наработке приёмов по каждому номеру. Как встроить этот месяц в общую подготовку — в плане подготовки с нуля.

Типичные ошибки новичков

Первый месяц все спотыкаются об одно и то же. Список — чтобы ты узнавал ошибку по симптому, а не искал её полчаса.

  1. Отступы. IndentationError или цикл считает не то. Тело if, for, def — строго на 4 пробела вправо, и всё тело — на одном уровне. Не смешивай табы и пробелы.
  2. = вместо ==. if x = 5: — синтаксическая ошибка. Одно «равно» — присваивание, два — сравнение.
  3. range не включает конец. range(1, 10) — это 1…9. Нужны числа до 10 включительно — пиши range(1, 11). На этом чаще всего ломаются задания 25.
  4. input() возвращает строку. x = input() и x + 1 — ошибка TypeError; x * 2 — молча удвоенная строка. Всегда int(input()), если нужно число.
  5. Изменение списка в цикле. for x in a: a.remove(x) пропускает элементы. Собирай результат в новый список или иди по индексам с конца.
  6. / вместо //. 10 / 2 — это 5.0, а n / 10 % 10 уже не даст цифру. Для целых — только //.

Если код падает — читай последнюю строку сообщения об ошибке: там тип и номер строки. Чаще всего этого хватает, чтобы найти проблему за минуту.

Что видишьЧто это значитКуда смотреть
IndentationErrorотступы не согласованысравни отступы соседних строк, замени табы на 4 пробела
SyntaxError: invalid syntaxопечатка в этой строке или строкой вышедвоеточие после if, for, def; незакрытая скобка или кавычка
TypeError: ... str ... intскладываешь строку с числомобернул ли ты input() и строку из файла в int()
IndexError: list index out of rangeвышел за конец спискапри обходе пар нужен range(len(a) - 1), а не range(len(a))
NameError: name ... is not definedопечатка в имени переменнойрегистр букв, объявлена ли переменная выше по коду
FileNotFoundErrorфайл не там, где программаположи .txt в ту же папку и сохрани программу перед запуском
RecursionErrorв рекурсии нет базыпроверь, что при малых n функция возвращает значение без вызова себя
ошибок нет, ответ неверныйошибка в логикепоставь print() внутри цикла и проверь первые три шага вручную

Где брать задачи по темам

  • Сайт Полякова (kpolyakov.spb.ru). Задачи сгруппированы по номерам заданий, к большинству есть ответы. Начиная со второй недели бери оттуда 16, 22, 24 и 25 — они самые «синтаксические».
  • Stepik. Бесплатные курсы Python для начинающих — упражнения на каждую конструкцию с автопроверкой. Хороши именно для первых двух недель, пока задачи ЕГЭ ещё не по зубам.
  • Решу ЕГЭ и ФИПИ. Открытый банк и демоверсия — чтобы видеть реальные формулировки. Разбор всех 27 заданий демоверсии есть в отдельной статье.
  • TuteMe. Тренажёр со встроенным редактором Python: задания по каждому из 27 типов, запуск кода в браузере, разбор каждой ошибки и прогноз балла. Удобно тем, что не надо переключаться между учебником, редактором и сайтом с ответами.

Что делать дальше

Короткий чек-лист старта:

  • Поставь Python и IDLE или VS Code — либо открой редактор в браузере.
  • Иди по девяти темам в порядке таблицы, не перескакивая.
  • На каждую тему — примеры из статьи запусти сам, потом 3–5 задач.
  • Не открывай учебник дальше списка «что не нужно».
  • С третьей недели решай реальные задания ЕГЭ по теме дня.
  • Через месяц — первый мини-вариант из знакомых заданий и разбор ошибок.

Когда девять тем перестанут вызывать вопросы, переходи к Python-идиомам для ЕГЭ — они сократят код вдвое — и к разборам конкретных заданий. В TuteMe можно пройти этот путь без установки чего-либо: редактор кода прямо в задании, автопроверка и адаптивный подбор задач по слабым темам. Первые 7 дней после регистрации — полный доступ без карты: этого хватает, чтобы пройти пару тем из таблицы и понять, идёт ли у тебя код; дальше бесплатно остаются 2 задания в день.

Попробовать бесплатно →

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

Сколько времени нужно, чтобы выучить Python для ЕГЭ с нуля

Базовый минимум — девять тем из этой статьи — реально пройти за 4 недели при 1–1,5 часах в день. После этого у тебя есть инструмент примерно для половины заданий экзамена. Дальше время уходит уже не на язык, а на сами задания: 17, 24, 25, 26, 27 требуют отработки на десятках задач, и это ещё 2–4 месяца регулярной практики.

Можно ли выучить Python для ЕГЭ за месяц

Синтаксис — да, если заниматься каждый день и не залезать в лишние темы вроде ООП. Но «выучил Python» и «решаю задания 24–27» — разные вещи. За месяц ты получишь инструмент, а уверенное применение к заданиям приходит за следующие 2–3 месяца практики. Начинать за месяц до экзамена поздно; за полгода — нормально.

Что нужно знать из Python для ЕГЭ, а что нет

Нужно: ввод/вывод и типы, арифметика (//, %, **), условия, циклы for/while, списки и срезы, строки и их методы, функции и рекурсия, чтение файла, словари и множества, перебор через вложенные циклы и itertools.product. Не нужно: классы и ООП, декораторы (кроме готового @lru_cache), исключения, генераторы, numpy/pandas, модули и виртуальные окружения.

С какого задания начинать, когда только выучил основы

С 16 (рекурсия — формулу дают в условии, переносишь в код), 22 (читаешь готовую программу с циклом) и простых 25 (цикл по числам, проверка делителей через %). Это самые «синтаксические» задания: минимум идей, максимум практики базовых конструкций. Потом 24 и 17, потом 26 и 27.

Какую среду ставить и что будет на самом экзамене

Для старта хватит IDLE — он ставится вместе с Python с сайта python.org. Удобнее VS Code с расширением Python или PyCharm Community. На станции КЕГЭ ставить ничего не нужно: среды программирования (Python, C++, Java, C#, Pascal, школьный алгоритмический язык), электронные таблицы и текстовый редактор там уже установлены. Какая именно Python-среда будет — зависит от пункта проведения, поэтому часть тренировок делай в «голом» редакторе без умных подсказок.

Нужно ли новичку учить list comprehension и другие идиомы

В первый месяц — нет. Всё, что делает [int(x) for x in f], делает и обычный цикл с append в три строки, а понять его проще. Идиомы — это ускорение для тех, кто уже пишет без ошибок; они экономят минуты на экзамене, но не дают баллов сами по себе. Сначала девять базовых тем, потом идиомы.

Как понять, что база освоена и пора переходить к заданиям

Простой тест: за 10 минут без подсказок написать программу, которая читает числа из файла в список, находит максимум среди чётных и выводит, сколько раз он встречается. Если получилось с первого-второго запуска — база есть. Если ищешь, как открыть файл или почему input() не складывается с числом, — ещё неделя упражнений.

Что делать, если код не работает и непонятно почему

Читай последнюю строку сообщения об ошибке — там тип (SyntaxError, TypeError, IndexError) и номер строки. Затем расставь print() внутри цикла и посмотри, что реально лежит в переменных на каждом шаге. Почти всегда причина — одна из типичных ошибок новичка: отступы, = вместо ==, range без последнего числа, строка вместо числа из input().

Готов применять на практике?

В тренажёре TuteMe — 1250 заданий ЕГЭ по информатике с автоматической проверкой и подробным разбором. AI-помощник подсказывает, где ты ошибаешься, и подбирает задания под твой уровень.

Начать бесплатно →