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, break | 5, 12, 22, 23 |
| 4 | Списки | индексы, срезы, append, sorted, min/max/sum | 17, 26 |
| 5 | Строки | count, find, replace, in, срезы | 24, 8 |
| 6 | Функции и рекурсия | def, return, вызов самой себя | 16, 23 |
| 7 | Чтение файла | open, readlines, split, int | 17, 24, 26, 27 |
| 8 | Словари и множества | dict, get, set, &, len | 26, 27 |
| 9 | Перебор всех вариантов | вложенные циклы, itertools.product | 2, 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», но можешь подступиться примерно к половине заданий экзамена — дальше вопрос уже не в языке, а в наработке приёмов по каждому номеру. Как встроить этот месяц в общую подготовку — в плане подготовки с нуля.
Типичные ошибки новичков
Первый месяц все спотыкаются об одно и то же. Список — чтобы ты узнавал ошибку по симптому, а не искал её полчаса.
- Отступы.
IndentationErrorили цикл считает не то. Телоif,for,def— строго на 4 пробела вправо, и всё тело — на одном уровне. Не смешивай табы и пробелы. =вместо==.if x = 5:— синтаксическая ошибка. Одно «равно» — присваивание, два — сравнение.rangeне включает конец.range(1, 10)— это 1…9. Нужны числа до 10 включительно — пишиrange(1, 11). На этом чаще всего ломаются задания 25.input()возвращает строку.x = input()иx + 1— ошибкаTypeError;x * 2— молча удвоенная строка. Всегдаint(input()), если нужно число.- Изменение списка в цикле.
for x in a: a.remove(x)пропускает элементы. Собирай результат в новый список или иди по индексам с конца. /вместо//.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 задания в день.