如何用python完成基本统计信息计算_Python基本统计值计算

描述

这是"实例"题,与课上讲解实例相同,请作答检验学习效果。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

除中位数外,其他输出保留小数点后两位。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

请补充编程模板中代码完成‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输入输出示例

输入

输出

示例 1

1,3,6,9,2,5,1

平均值:3.86,标准差:2.97,中位数:3

就光顾着他说和上课一样了。

不然,这里是一行以逗号分隔完成输入,而上课讲的是每次输入一个数:

nums =[]

numstr= input("请输入数字(回车退出):")while numstr != '':

nums.append(eval(numstr))

numstr= input("请输入数字(回车退出):")

所以这里需要这样:

def getNum(): #获取用户不定长度的输入

nums = []

iNumstr = input().split(",")

for i in iNumstr:

nums.append(eval(i))

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 = sdev + (num - mean)**2

return pow(sdev / (len(numbers)-1), 0.5)

def median(numbers): #计算中位数

numbers = sorted(numbers)

size = len(numbers)

if size % 2 == 0:

med = (numbers[size//2]+numbers[size//2-1])/2

else:

med = numbers[size//2]

return med

n = getNum() #主体函数

m = mean(n)

print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m,\

dev(n,m),median(n)))

并且这个sorted函数太坏了。

sort()方法语法:

list.sort(cmp=None,key=None,reverse=False)

cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

而还有一个sorted:

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

sorted 语法:

sorted(iterable,key=None,reverse=False)

区别即:

2014877-20200805122758966-896944579.png

2014877-20200805122841403-1008391143.png

所以用sorted时,一定要送佛送到佛归西。

numbers = sorted(numbers)

下面为答案:

#请在...补充一行或多行代码#CalStatisticsV1.py

def getNum(): #获取用户不定长度的输入

nums =[]

iNumstr= input().split(",")for i iniNumstr:

nums.append(eval(i))returnnumsdef mean(numbers): #计算平均值

s = 0.0

for num innumbers:

s+=numreturn s/len(numbers)def dev(numbers, mean): #计算标准差

sdev = 0.0

for num innumbers:

sdev= sdev + (num - mean)**2

return pow(sdev / (len(numbers)-1), 0.5)def median(numbers): #计算中位数

numbers =sorted(numbers)

size=len(numbers)if size % 2 ==0:

med= (numbers[size//2]+numbers[size//2-1])/2

else:

med= numbers[size//2]returnmed

n= getNum() #主体函数

m =mean(n)print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m,\

dev(n,m),median(n)))

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值