Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Верните медиану и ненормированное медианное абсолютное отклонение для 1–4096 конечных чисел в пределах ±10^100. Проверьте чётную длину, равные значения и выброс, отклоняя логические и неконечные значения без изменения порядка ввода.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
import math
def median_deviation(values):
if type(values) is not list or not 1 <= len(values) <= 4096:
raise ValueError("mad.input")
if any(type(x) not in (int, float) or not -10**100 <= x <= 10**100 or not math.isfinite(x) for x in values):
raise ValueError("mad.value")
def median(items):
ordered = sorted(items)
n = len(ordered)
return float(ordered[n//2]) if n % 2 else ordered[n//2-1]/2+ordered[n//2]/2
center = median(values)
return center, median([abs(x-center) for x in values])
Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.