Статья Автор: Деникина Н.В., Деникин А.В.

Файл и ответ

Файл и ответ

Таблица работает как конвейер

Не нужно сохранять в двумерный список сразу всю таблицу. Программа берёт одну строку, превращает её в список и сразу решает: пропустить или засчитать.

Микропаттерн: одна строка — один список. Сначала научись читать данные, затем добавляй условия.
Почему это удобно

Порядок уже задан файлом

Цикл идёт сверху вниз. Поэтому первая найденная строка имеет наименьший номер, а последнее сохранённое значение — наибольший.


Одна строка
Из текста в числа

split() делит строку на части,
map(int, ...) превращает их в числа,
list(...) собирает список.

Полный работающий пример находится в следующем Python-блоке.

Каркас
Всегда четыре действия

Открыть файл → прочитать строку → проверить два условия → изменить ответ так, как просит последняя фраза.

  A B C D E F G
1 1 2 3 10 да нет 0
2 2 2 3 4 нет да 0
3 1 4 7 9 да да 1
Служебный столбец G: подходящая строка получает 1, остальные — 0.

В электронной таблице идея та же: одна строка даёт 1 или 0, а итоговый оператор собирает ответ.



Фактический вывод: [8, 3, 5, 5], затем 21.

Последняя фраза

Она выбирает способ собирать ответ

Количество строкувеличить счётчик
Наименьший номервывести номер и остановить цикл
Наибольший номерзапоминать номер каждой подходящей строки
Сумма первой строкивывести сумму и остановить цикл
Сумма номеровприбавлять номер к накопленной сумме

Полный мини-пример

Первая подходящая строка

Ищем первую строку, где все числа различны, а максимум меньше суммы остальных. Как только строка найдена, печатаем её номер и останавливаем цикл.



Решение в электронной таблице

Покажем решение и через электронные таблицы. Заведем служебные столбцы.

Щёлкай по любой ячейке. Для исходных чисел строка формул становится полем ввода; для служебных ячеек она показывает формулу.

Исследуйте такие данные

Нажми на пример — он загрузится в выбранную строку. Затем измени одно число и посмотри, когда в столбце H появится 1.

H4
fx
Выбери ячейку — её значение или формула появится в строке fx. Исходные числа можно менять прямо в таблице.
  A B C D E F G H
2 1 да нет 0
3 2 нет да 0
4 3 да да 1
Служебная ячейка: строка формул показывает, как получен результат.
Сейчас проходит одна строка. Первая подходящая — №3.
Рабочая книга 09_file_answer.xlsx находится во вложениях. В ней можно продолжить исследование на большем наборе строк.

Ловушки

Три проверки перед ответом

Первая строка имеет номер 1: n увеличивай первой строкой в цикле.
Первая строка найдена, но после неё нет break: программа пойдет дальше и выведет все подходящие строки. При большом числе строк, номер первой строки можно не увидеть.
Условие просит сумму строки, а программа печатает её номер.
Attached files
09_file_answer.xlsx
Печать