Python基本统计值计算实例详解
目录
一、问题分析
基本统计值需求
需要计算一组数据的以下统计指标:
- 总个数:数据总量
- 求和:所有数据的总和
- 均值:数据的平均值
- 方差:数据离散程度
- 中位数:数据中间值
输入方式
- 用户通过控制台逐行输入数据
- 空输入表示结束数据录入
二、功能分解
核心功能模块
模块名称 | 功能说明 | 实现要点 |
---|---|---|
数据获取 | 获取用户输入数据 | 使用while循环接收不定长输入 |
均值计算 | 计算数据平均值 | 累加求和后除以数据个数 |
方差计算 | 计算数据离散程度 | 基于均值计算平方差平均值 |
中位数计算 | 找出数据中间值 | 排序后取中间位置值 |
三、代码实现
1. 数据获取函数
def getNum():
"""获取用户输入数据"""
nums = []
while True:
num = input("请输入数字(直接回车结束输入): ")
if num == "":
break
nums.append(float(num))
return nums
2. 均值计算函数
def mean(numbers):
"""计算平均值"""
s = 0.0
for num in numbers:
s += num
return s / len(numbers)
3. 方差计算函数
def dev(numbers, mean):
"""计算方差"""
sdev = 0.0
for num in numbers:
sdev += (num - mean) ** 2
return pow(sdev / len(numbers), 0.5)
4. 中位数计算函数
def median(numbers):
"""计算中位数"""
sorted_numbers = sorted(numbers)
size = len(sorted_numbers)
if size % 2 == 0:
return (sorted_numbers[size//2-1] + sorted_numbers[size//2])/2
else:
return sorted_numbers[size//2]
5. 主程序逻辑
# 获取数据
data = getNum()
# 计算统计值
m = mean(data)
d = dev(data, m)
med = median(data)
# 输出结果
print(f"数据总量:{len(data)}")
print(f"平均值:{m:.2f}")
print(f"方差:{d:.2f}")
print(f"中位数:{med}")
四、举一反三
技术要点总结
-
灵活输入处理
- 使用
while True
循环实现不定长输入 - 通过空字符串判断输入结束
- 使用
-
模块化编程
- 将不同功能封装为独立函数
- 通过参数传递实现函数间通信
-
内置函数应用
sorted()
实现数据排序len()
获取数据个数pow()
进行幂运算
扩展思路
扩展方向 | 实现建议 |
---|---|
异常处理 | 添加输入合法性校验 |
数据可视化 | 集成matplotlib展示分布 |
文件数据读取 | 支持从CSV文件读取数据集 |
更多统计指标 | 添加众数、极差等计算功能 |
最佳实践建议:对于大型数据集,建议使用numpy库进行高效计算(
numpy.mean()
,numpy.std()
等)