Задание №9 ЕГЭ по информатике: разбор, шаблоны кода Python и анти-примеры | СмартКИМ
СмартКИМ УДОБНАЯ ПОДГОТОВКА К ЕГЭ И ОГЭ
Задачи №9 Решать в тренажере Войти в СмартКИМ
ЕГЭ (1–27) ОГЭ (1–15) Python: шпаргалка
Быстрый переход по номерам и темам
Базовый (1 балл) Время: 3-5 мин Python open('9.txt') row.count() Все задачи №{ topic_num } в каталоге

Задание №9. Обработка числовой информации в таблицах

Тема: Проверка условий на повторения и средние значения чисел в строке
Проверка комплексных условий на числа в строках (повторы, средние значения, неравенства). На Python решается в 10 строк быстрее и надежнее Excel.

1. Алгоритм решения Задания №9 на Python:

  1. Скопируйте таблицу из Excel в блокнот и сохраните как 9.txt.
  2. Читаем построчно: row = list(map(int, line.split())).
  3. Разделяем числа на повторяющиеся repeats = [x for x in row if row.count(x) > 1] и уникальные uniques = [x for x in row if row.count(x) == 1].
  4. Проверяем математические условия.

Разновидности и прототипы задания на экзамене

Тип 1: Ровно одно повторяющееся число
В строке из 6 чисел ровно одно число встречается дважды, остальные уникальны.
Тип 2: Сравнение среднего уникальных с максимальным/повторяющимся
Среднее арифметическое неповторяющихся чисел больше/меньше повторяющегося.

Боевой шаблон решения на Python

Запустить код в онлайн-песочнице
# === Боевой шаблон решения Задания №9 на Python ===
count_valid = 0

with open('9.txt') as f:
    for line in f:
        row = list(map(int, line.split()))
        if not row: continue
        
        # Разделяем на повторяющиеся и уникальные:
        repeats = [x for x in row if row.count(x) == 2]
        uniques = [x for x in row if row.count(x) == 1]
        
        # Пример условия: ровно одно число повторяется дважды и среднее уникальных > повторяющегося:
        if len(repeats) == 2 and len(uniques) == 4:
            avg_uniques = sum(uniques) / len(uniques)
            if avg_uniques > repeats[0]:
                count_valid += 1

print("Количество подходящих строк:", count_valid)

Анти-примеры (Типичные ошибки vs Как делать правильно)

Как делать НЕ надо:
Ошибка: Деление на ноль при пустом списке uniques
avg = sum(uniques) / len(uniques) вызовет ZeroDivisionError.
Как делать ПРАВИЛЬНО:
Правильно: Всегда проверять len(uniques) > 0 перед делением!
ГРОБ

ГРОБ №9: Число повторяется 3 и более раз

Условие: в строке есть число, повторяющееся трижды.

Как обойти ловушку: Используйте `[x for x in set(row) if row.count(x) == 3]`.

Лайфхаки и подводные камни на экзамене:

  • Условие 'все числа различны' проверяется в одну строчку: `len(set(row)) == len(row)`.
Банк реальных задач №9 Открыть в тренажере СмартКИМ