Базовый (1 балл)
Время: 3-5 мин
Python
open('9.txt')
row.count()
Все задачи №{ topic_num } в каталоге
Задание №9. Обработка числовой информации в таблицах
Тема: Проверка условий на повторения и средние значения чисел в строке
Проверка комплексных условий на числа в строках (повторы, средние значения, неравенства). На Python решается в 10 строк быстрее и надежнее Excel.
1. Алгоритм решения Задания №9 на Python:
- Скопируйте таблицу из Excel в блокнот и сохраните как
9.txt. - Читаем построчно:
row = list(map(int, line.split())). - Разделяем числа на повторяющиеся
repeats = [x for x in row if row.count(x) > 1]и уникальныеuniques = [x for x in row if row.count(x) == 1]. - Проверяем математические условия.
Разновидности и прототипы задания на экзамене
Тип 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)`.