"""统计工具 —— dim4 Q4.2 自检产物。""" from __future__ import annotations def mean(values: list[float]) -> float: if not values: return 0.0 return sum(values) / len(values) def median(values: list[float]) -> float: if not values: return 0.0 s = sorted(values) n = len(s) mid = n // 2 if n % 2: return s[mid] return (s[mid - 1] + s[mid]) / 2 if __name__ == "__main__": assert mean([]) == 0.0 assert mean([1, 2, 3]) == 2.0 print("M-OK") assert median([]) == 0.0 assert median([1, 3]) == 2.0 assert median([1, 2, 3, 4]) == 2.5 print("MD-OK") print("all stats self-tests passed")