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


1. Переменные и типы данных

На ЕГЭ достаточно знать три типа:

  • int - целые числа (0, 42, -7)
  • str - строки ("привет", "101010")
  • float - дробные числа (3.14) — встречаются редко

Переменные создаются без объявления типа:

x = 10          # int
name = "Алиса"  # str
pi = 3.14 # float

Важно для экзамена: Python автоматически определяет тип. Но если ты читаешь число из файла - оно будет строкой. Нужно явно преобразовать:

# Это строка "42", а не число 42
s = "42"
# Преобразуем в число
n = int(s) # теперь n = 42

2. Ввод и вывод

На ЕГЭ данные часто читают из файла, но базовый ввод тоже нужен:

# Ввод с клавиатуры (input всегда возвращает строку!)
n = int(input())         # одно число
a, b = map(int, input().split())  # два числа в одной строке

# Вывод
print(n)
print(a, b)          # через пробел
print(a, b, sep=",") # через запятую

Лайфхак: конструкция map(int, input().split()) встречается почти в каждом задании. Выучи её наизусть — она разбивает строку по пробелам и превращает каждый кусок в число.


3. Условия (if, elif, else)

Без условий не решить ни одну задачу:

x = int(input())

if x > 0:
    print("положительное")
elif x == 0:
    print("ноль")
else:
    print("отрицательное")

Частая ошибка на ЕГЭ: путать = (присваивание) и == (сравнение). Запомни: x = 5 — «положи 5 в x», x == 5 — «x равен пяти?»

Логические операторы, которые нужны:

if x > 0 and x < 100:    # И — оба условия истинны
if x > 0 or y > 0:       # ИЛИ — хотя бы одно
if not (x > 0):           # НЕ — отрицание

4. Циклы: for и while

Это сердце программирования на ЕГЭ. Без циклов не обойтись.

Цикл for - когда знаешь количество повторений

# Напечатать числа от 0 до 9
for i in range(10):
    print(i)

# От 1 до 10 включительно
for i in range(1, 11):
    print(i)

# От 10 до 1 (обратный порядок)
for i in range(10, 0, -1):
    print(i)

# Перебрать символы строки
for char in "hello":
    print(char)

Запомни range:

range(n) — от 0 до n-1
range(a, b) — от a до b-1
range(a, b, step) — от a до b-1 с шагом step


Цикл while - когда заранее не знаешь сколько повторений

# Делить число на 2, пока оно чётное
n = 48
while n % 2 == 0:
    n = n // 2
print(n)  # 3

Классика ЕГЭ: разложение числа на цифры:

n = 12345
while n > 0:
    digit = n % 10   # последняя цифра
    n = n // 10       # отбрасываем последнюю цифру
    print(digit)
# Выведет: 5 4 3 2 1

5. Списки (массивы)

Списки - это контейнер для хранения нескольких значений.

# Создание
a = [1, 2, 3, 4, 5]
b = []               # пустой список

# Добавление элемента
b.append(10)         # b = [10]
b.append(20)         # b = [10, 20]

# Обращение по индексу (нумерация с 0!)
print(a[0])  # 1
print(a[2])  # 3
print(a[-1]) # 5 (последний элемент)

# Длина списка
print(len(a))  # 5

Перебор списка:

# По элементам
for x in a:
    print(x)

# По индексам (когда нужен номер элемента)
for i in range(len(a)):
    print(f"a[{i}] = {a[i]}")

Полезные операции (часто нужны на экзамене):

a = [3, 1, 4, 1, 5, 9]

print(max(a))    # 9 — максимум
print(min(a))    # 1 — минимум
print(sum(a))    # 23 — сумма
print(sorted(a)) # [1, 1, 3, 4, 5, 9] — отсортированный

a.sort()         # сортирует сам список (не создаёт новый)
a.count(1)       # 2 — сколько раз встречается 1

6. Строки

Строки в Python — это последовательности символов.

s = "Hello, World!"

# Длина
print(len(s))     # 13

# Обращение по индексу
print(s[0])        # H
print(s[-1])       # !

# Срезы — мощный инструмент
print(s[0:5])      # Hello
print(s[7:])       # World!
print(s[:5])       # Hello

# Перебор символов
for char in s:
    print(char)

Методы строк, нужные для ЕГЭ:

s = "  Hello World  "

s.strip()          # "Hello World" — убрать пробелы по краям
s.split()          # ["Hello", "World"] — разбить по пробелам
s.lower()          # "  hello world  " — в нижний регистр
s.upper()          # "  HELLO WORLD  " — в верхний
s.count("l")       # 3 — сколько раз встречается
s.replace("o","0") # "  Hell0 W0rld  " — замена
"abc" in s         # False — есть ли подстрока

7. Работа с файлами

Это критически важный навык. Задания 17, 24, 25, 26, 27 часто требуют чтения данных из файла.

# Прочитать все строки файла
f = open("input.txt")
lines = f.readlines()
f.close()

# Или короче (рекомендуемый способ)
with open("input.txt") as f:
    lines = f.readlines()

Типичный паттерн ЕГЭ: файл с числами, по одному на строке:


# Прочитать числа из файла в список
with open("input.txt") as f:
    numbers = [int(line) for line in f]

# Теперь можно работать
print(max(numbers))
print(min(numbers))
print(sum(numbers))

Ещё вариант — файл с двумя числами в строке:

# Файл:
# 3 5
# 7 2
# 1 9

with open("input.txt") as f:
    for line in f:
        a, b = map(int, line.split())
        print(a + b)


8. Функции

Для задания 27 нужно уметь писать функции. Но даже в простых заданиях они упрощают код:

# Определение функции
def is_prime(n):
    """Проверяет, является ли число простым"""
    if n < 2:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

# Вызов
print(is_prime(7))   # True
print(is_prime(10))  # False

Для ЕГЭ достаточно знать:

  • def имя(параметры): — объявление
  • return значение — возврат результата
  • Функция может вызывать саму себя (рекурсия — отдельная тема)

9. Словари (dict)

Словарь хранит пары «ключ: значение». На ЕГЭ полезен для подсчёта частоты элементов:

# Подсчёт, сколько раз встречается каждый символ
s = "абракадабра"
d = {}
for char in s:
    if char in d:
        d[char] += 1
    else:
        d[char] = 1

print(d)  # {'а': 5, 'б': 2, 'р': 2, 'к': 1, 'д': 1}

Короткий вариант через get:

d = {}
for char in s:
    d[char] = d.get(char, 0) + 1

10. Полезные приёмы для экзамена


Целочисленное деление и остаток


17 // 5   # 3 (целая часть)
17 % 5    # 2 (остаток)

# Получить последнюю цифру числа
n = 12345
last_digit = n % 10   # 5

# Отбросить последнюю цифру
n = n // 10           # 1234

Перевод между системами счисления

# Десятичное → другие
bin(42)    # '0b101010' (двоичная)
oct(42)    # '0o52' (восьмеричная)
hex(42)    # '0x2a' (шестнадцатеричная)

# Другие → десятичное
int('101010', 2)    # 42 (из двоичной)
int('52', 8)        # 42 (из восьмеричной)
int('2a', 16)       # 42 (из шестнадцатеричной)

Множества (set) - для уникальных значений

a = [1, 2, 2, 3, 3, 3]
unique = set(a)       # {1, 2, 3}
print(len(unique))    # 3

# Проверка принадлежности — мгновенная (быстрее чем в списке)
if 5 in unique:
    print("есть")

Генераторы списков — короткая запись

# Квадраты чисел от 1 до 10

squares = [x**2 for x in range(1, 11)]

# Только чётные
evens = [x for x in range(100) if x % 2 == 0]

# Прочитать числа из файла
with open("input.txt") as f:
    nums = [int(line) for line in f]


Что дальше

Этот минимум покрывает синтаксис. Но ЕГЭ — это не только знание языка, а умение применять его для решения задач. Следующий шаг — практика на реальных заданиях.

Если чувствуешь, что знаешь синтаксис, но «зависаешь» перед задачами — проблема не в Python, а в алгоритмическом мышлении. Это отдельный навык, который тренируется практикой и разбором решений.