拆解计算不定长度数字的平均值、方差、中位数的代码

# 获取用户不定长度的输入
def getNum():
    nums = [] 
    iNumStr = input("请输入数字(回车退出):")
    while iNumStr !="":
        nums.append(eval(iNumStr))
        iNumStr = input("请输入数字(回车退出):")
    return nums


# 计算平均值
def mean(numbers):
    s = 0.0
    for num in numbers:
        s +=num
    return s/len(numbers)

# 计算方差:
def dev(numbers,mean):
    sdev =0.0
    for num in numbers:
        sdev +=(num-mean)**2
    return pow(sdev/(len(numbers)-1),0.5)

# 计算中位数
def median(numbers):
    sorted(numbers)
    size = len(numbers)
    if size %2 ==0:
        med = (numbers[size//2 -1] +numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

# 执行函数
n= getNum()
m = mean(n)
print(f"平均值:{m}, 方差:{dev(n,m):.2}, 中位数:{median(n)}")

# 错误:
# 第37行:`m = mean()`缺少参数n,→`m=mean(n)`
# 第30行:`med = (numberss[size//2 -1] +numbers[size//2])/2`中numberss拼写错误,应为`numbers`

# 框架
# 功能块:获得数字,计算平均数,计算方差,计算中位数

# 使用工具
# def
# 空列表[]
# input()
# while
# list.append()
# eval()
# return
# for in 
# +=
# len()
# **
# pow()
# sorted()
# if...else...
# %
# ==
# print
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值