32 lines
715 B
Python
32 lines
715 B
Python
"""统计工具 —— 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")
|