第三十三节课:Python基本统计值计算实例详解

Python基本统计值计算实例详解

目录


一、问题分析

基本统计值需求

需要计算一组数据的以下统计指标:

  1. 总个数:数据总量
  2. 求和:所有数据的总和
  3. 均值:数据的平均值
  4. 方差:数据离散程度
  5. 中位数:数据中间值

输入方式

  • 用户通过控制台逐行输入数据
  • 空输入表示结束数据录入

二、功能分解

核心功能模块

模块名称功能说明实现要点
数据获取获取用户输入数据使用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}")

四、举一反三

技术要点总结

  1. 灵活输入处理

    • 使用while True循环实现不定长输入
    • 通过空字符串判断输入结束
  2. 模块化编程

    • 将不同功能封装为独立函数
    • 通过参数传递实现函数间通信
  3. 内置函数应用

    • sorted()实现数据排序
    • len()获取数据个数
    • pow()进行幂运算

扩展思路

扩展方向实现建议
异常处理添加输入合法性校验
数据可视化集成matplotlib展示分布
文件数据读取支持从CSV文件读取数据集
更多统计指标添加众数、极差等计算功能

最佳实践建议:对于大型数据集,建议使用numpy库进行高效计算(numpy.mean(), numpy.std()等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monday_CN

72小时打磨,值得1元认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值