当前位置: 首页 > news >正文

Python计算常用统计量化

计算并输出计数、总和、平均值、最大值、最小值、极差、样本方差、样本标准差和中位数等常用统计量。

```python

import math

def get_numbers_from_input(prompt):

"""从用户输入中解析数字列表"""

while True:

raw = input(prompt).strip()

if not raw:

print("输入不能为空,请重新输入。")

continue

# 尝试用空格或逗号分割

parts = raw.replace(',', ' ').split()

nums = []

for p in parts:

try:

nums.append(float(p))

except ValueError:

print(f"无法解析 '{p}' 为数字,请重新输入。")

break

else:

if nums:

return nums

else:

print("未检测到有效数字,请重新输入。")

def calculate_stats(nums):

"""计算并返回统计字典"""

n = len(nums)

total = sum(nums)

mean = total / n

sorted_nums = sorted(nums)

minimum = sorted_nums[0]

maximum = sorted_nums[-1]

range_val = maximum - minimum

# 样本方差(除以 n-1)

if n < 2:

variance = None

std_dev = None

else:

variance = sum((x - mean) ** 2 for x in nums) / (n - 1)

std_dev = math.sqrt(variance)

# 中位数

if n % 2 == 1:

median = sorted_nums[n // 2]

else:

median = (sorted_nums[n // 2 - 1] + sorted_nums[n // 2]) / 2

return {

"count": n,

"sum": total,

"mean": mean,

"min": minimum,

"max": maximum,

"range": range_val,

"variance_sample": variance,

"std_dev_sample": std_dev,

"median": median

}

def main():

print("=== 数值统计工具 ===")

print("请输入若干个数字,用空格或逗号分隔(例如:1.5, 2, 3.8)")

nums = get_numbers_from_input("数字: ")

stats = calculate_stats(nums)

print("\n--- 统计结果 ---")

print(f"数据个数: {stats['count']}")

print(f"总和: {stats['sum']:.4f}")

print(f"平均值: {stats['mean']:.4f}")

print(f"最小值: {stats['min']:.4f}")

print(f"最大值: {stats['max']:.4f}")

print(f"极差: {stats['range']:.4f}")

if stats['variance_sample'] is not None:

print(f"样本方差: {stats['variance_sample']:.4f}")

print(f"样本标准差: {stats['std_dev_sample']:.4f}")

else:

print("样本方差: 数据少于2个,无法计算")

print(f"中位数: {stats['median']:.4f}")

if __name__ == "__main__":

main()

```

使用说明

1. 运行程序后,按提示输入数字(例如 12 34.5 67 89.1 或 12,34.5,67,89.1)。

2. 程序会依次显示各项统计结果,所有数值保留四位小数。

3. 如果输入少于2个数字,方差和标准差会显示“无法计算”。

个人建议

· 如需总体方差(除以 n),可修改 variance 计算公式为 sum((x - mean)**2) / n。

· 如需支持更多统计量(如四分位数、众数等),可自行扩展 calculate_stats 函数。

http://www.jsqmd.com/news/1115960/

相关文章:

  • STC3115电池监控芯片与PIC18F45K80 MCU的精准电池管理系统设计
  • YOLOv11涨点实战:TGRS 2026 DBDM动态下采样模块,遥感小目标检测有效涨点
  • Kiran-panel与Wayland协议集成:现代桌面环境的终极兼容性解决方案
  • 2026免费Word转图片在线工具指南:无需注册无水印转换实操教程
  • 4-20mA电流环原理与工业自动化应用
  • Microsoft Agent Framework - 顺序执行 Workflow
  • 国产开源图片大模型选型指南:DiT架构、许可证合规与本地化部署实战
  • TC78H653FTG与PIC18F4553直流电机驱动方案解析
  • 2026年玻璃转子流量计亲测排行分享
  • utshell在企业环境中的应用:部署、维护与最佳实践
  • Kiran-panel内存管理优化:如何避免内存泄漏并提升系统稳定性
  • AI 编程越用越返工?因为你让 AI 自己批改自己的作业
  • 办公自动化项目:批量处理Excel报表
  • 如何5分钟搞定Steam挂卡?Idle Master完整使用指南
  • 墨香情手游官网下载:墨香情正版水墨武侠怀旧服最新官方下载渠道
  • 组合导航4B/5B状态、GNSS、RTK差分、伪距、搜星数超通俗详解
  • 本地部署Codex+Cowart:实现AI绘画无限画布与精准局部编辑
  • JPEXS Free Flash Decompiler:终极免费Flash反编译工具完整使用指南
  • 探索Kiran-authentication-devices的生物识别能力:指纹与指静脉设备驱动开发指南
  • Calico vs Flannel:openeuler/k8s-install网络插件选择与性能测试
  • 6DoF运动追踪:IIM-42652 IMU与STM32F4硬件协同设计
  • ComfyUI-WanVideoWrapper:从零到一的AI视频创作完全指南
  • 基于74HC32与PIC18的键盘管理系统设计与实现
  • 终极歌词获取工具:三步完成网易云QQ音乐歌词批量下载
  • MC6470与PIC18LF47K42的硬件协同与数据融合实践
  • 终极指南:OmenSuperHub让你的惠普暗影精灵笔记本性能飙升200%!
  • ASM330LHH与PIC32MX675F256L运动跟踪系统开发指南
  • 终极指南:Kiran Menu安装与配置全解析,让你的Linux桌面焕然一新
  • 3分钟掌握VRRTest:专业显示器可变刷新率检测工具完全指南
  • Kiran-authentication-devices核心组件解析:从Device到Driver的设计哲学