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, а в алгоритмическом мышлении. Это отдельный навык, который тренируется практикой и разбором решений.