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

# 获取用户不定长度的输入
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
全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务