当前位置: 首页 > 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.gsyq.cn/news/1627942.html

相关文章:

  • 我国成功发射海洋二号E卫星,顺利进入预定轨道
  • 2026免费Word转图片在线工具指南:无需注册无水印转换实操教程
  • 2026年玻璃转子流量计亲测排行分享
  • 如何5分钟搞定Steam挂卡?Idle Master完整使用指南
  • 组合导航4B/5B状态、GNSS、RTK差分、伪距、搜星数超通俗详解
  • 探索Kiran-authentication-devices的生物识别能力:指纹与指静脉设备驱动开发指南
  • 终极指南:OmenSuperHub让你的惠普暗影精灵笔记本性能飙升200%!
  • ComfyUI-WanVideoWrapper:从零到一的AI视频创作完全指南
  • 基于74HC32与PIC18的键盘管理系统设计与实现
  • 3分钟掌握VRRTest:专业显示器可变刷新率检测工具完全指南
  • STM32与IIM-42652实现6DoF运动追踪技术详解
  • 工业自动化现场汽车氛围灯测量方式
  • 为什么选择rhostname?Rust语言带来的内存安全与性能优势深度剖析
  • AD74413R与TM4C1299NCZAD的高精度混合信号系统设计
  • ASM330LHH与PIC18F2610构建高精度运动跟踪系统
  • XML外部实体注入(XEE)漏洞:原理、攻击手法与防御实战
  • 当AI监管“穿透”到基础设施层:EU AI Act生效,中间件迎来“可信”大考
  • 高性能M3U8下载器架构解析:如何实现多线程并发处理与AES解密优化
  • M2XFP:突破4位量化瓶颈的元数据增强架构
  • 2026降AI率工具亲测:10款工具对比,论文质量提升秘籍
  • KMR221与PIC18F25K40实现高精度电压监测方案
  • 什么是AI无感出勤?通芝科技解读其在复杂用工合规管理中的核心价值
  • PIC18F47Q10与IS31FL3731驱动LED矩阵开发指南
  • 终极指南:如何使用MoocDownloader轻松离线下载中国大学MOOC课程
  • TC78H660FTG与PIC18F86J50的直流电机驱动系统设计
  • DC-DC降压转换与MP8859电源管理IC应用实践
  • 终极指南:如何用Harepacker-resurrected一站式编辑MapleStory游戏文件
  • 如何通过Native-Turbo提升大型应用性能?微架构优化技术深度揭秘
  • Montserrat字体完全指南:如何免费获得专业级排版效果
  • STM32硬件去抖按键设计与中断优化实践