Зачем это в ЕГЭ. Задание 17 проверяет умение читать и обрабатывать данные из файла. Даёт 1 первичный балл. Встречается в 80% реальных вариантов, часто требует подсчёта сумм/количеств по условию.
Главная идея. Нужно прочитать файл построчно, разобрать строки на части и применить условие задачи. Ключ — правильная работа с типами данных и обработка возможных ошибок формата.
Алгоритм (чеклист).
1. Открыть файл в режиме чтения (with open(...) as f)
2. Прочитать все строки (lines = f.readlines())
3. Для каждой строки:
- Удалить символы перевода строк (strip())
- Разбить по разделителю (split())
- Привести данные к нужному типу (int()/float())
4. Применить условие задачи (фильтрация, подсчёт)
5. Проверить крайние случаи (пустой файл, некорректные данные)
6. Вывести результат в требуемом формате
Опоры (кратко).
- with open('file.txt') as f: — менеджер контекста
- line.strip().split(',') — очистка и разбивка строки
- try-except — обработка ошибок преобразования типов
- sum(), len(), max() — базовые функции агрегации
Пример 1 (подсчёт по условию).
Шаг 1. Открываем файл data.csv с числами через запятую.
Шаг 2. Читаем строки: ["1,2,3", "4,5,6"].
Шаг 3. Разбиваем первую строку: ['1', '2', '3'].
Шаг 4. Преобразуем в числа: [1, 2, 3].
Шаг 5. Считаем количество чисел >2: 1 (только 3).
Шаг 6. Повторяем для всех строк, суммируем результат: 3.
Пример 2 (анализ структуры).
Шаг 1. Читаем файл students.txt с ФИО и баллами.
Шаг 2. Разбиваем строку "Иванов 85" на части.
Шаг 3. Проверяем, что элементов ровно 2.
Шаг 4. Преобразуем балл в число.
Шаг 5. Добавляем в список, если балл ≥80.
Шаг 6. Выводим количество отобранных студентов.
Типичные ошибки.
1. Забыли `strip()` — остаются \n в данных
2. Не обработали ошибки — падение при нечисловых данных
3. Неправильный разделитель — использовали split() без аргумента для CSV
4. Закрытие файла вручную — лучше использовать with
5. Путаница в типах — сравнение строк вместо чисел
Дальше. Разберите обработку JSON и XML-файлов, они встречаются в сложных задачах.