Доля подходящих тренировок

тема: Таблицы: фильтр и группировка · уровень: базовый

Условие

В файле data.csv находится дневник тренировок бегуна. Каждая строка после заголовка описывает одну тренировку: дату, дистанцию в километрах и средний пульс.

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

Требуется найти долю отобранных тренировок среди всех строк файла в процентах. Используется формула 100 * s / n, где s — число отобранных строк, а n — общее число строк с тренировками в файле. Если в строке пропущена дистанция или средний пульс, такая строка не считается отобранной, но входит в число n. При равенстве дистанции с минимальным порогом или пульса с максимальным порогом тренировка считается отобранной.

Формат ввода

Рядом с программой расположен файл data.csv в кодировке UTF-8. Разделитель в файле — запятая, первая строка содержит заголовок. В файле записаны столбцы date, distance_km, avg_pulse.

В первой строке стандартного ввода задано вещественное число d — минимальная дистанция в километрах.

Во второй строке стандартного ввода задано целое число p — максимальный средний пульс.

Формат вывода

Выведите долю отобранных тренировок среди всех строк файла в процентах с двумя знаками после точки.

Ограничения

В файле от 300 до 1000 строк с тренировками, не считая заголовка.

Дата date имеет вид YYYY-MM-DD, длина строки равна 10 символам.

Непустое значение distance_km — вещественное число от 2.0 до 42.0 включительно с одним знаком после точки. Значение может быть пропущено и тогда записано как пустое поле.

Непустое значение avg_pulse — целое число от 110 до 190 включительно. Значение может быть пропущено и тогда записано как пустое поле.

0.0 ≤ d ≤ 50.0, 90 ≤ p ≤ 250. Количество строк в файле всегда положительно, поэтому деления на ноль не возникает.

Решить задачу с автопроверкой на Python →

Куда дальше