python慕课版电子版教材,python慕课版课后题答案

大家好,小编来为大家解答以下问题,python慕课版董付国课后题答案,python慕课版课后题答案郭炜,现在让我们一起来看看吧!

Source code download: 本文相关源码

实例9:基本统计值计算

基本统计值

-总个数:len()

-求和:for...in

-平均值:求和/总个数

-方差:各数据与平均数差的平方的和的平均数

-中位数:排序,奇数找中间一个,偶数找中间两个求平均

代码:
#CalStatisticsV1.py
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=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):
	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("平均值:{},标准差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
逐行分析:

#CalStatisticsV1.py
def getNum():

定义函数获取用户输入

    num=[]
定义一个列表类型

    iNumStr=input("请输入数字(回车推出):")
定义iNumStr,并提示用户输入

    while iNumStr!="":
如果用户输入的不是回车

        nums.append(eval(iNumStr))
就是把用户输入加到列表中

        iNumStr=input("请输入数字(回车推出):")
循环获取用户输入

    return nums
返回列表

def mean(numbers):
传入列表的参数

    s=0.0
初始化s,为下面加和做准备

    for num in numbers:
        s=s+num

循环加和列表中的元素

    return s/len(numbers)
返回平均值

def dev(numbers,mean):
    sdev=0.0

初始化sdev,为下面加和做准备

    for num in numbers:
        sdev=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()
将getNum函数的返回值赋给n

m=mean(n)
将n的值传入m,并获取返回值赋给m

print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))

举一反三

技术能力扩展

-获取多个数据:从控制台获取多个不确定数据的方法

-分隔多个函数:模块化设计方法

-充分利用函数:充分利用python提供的内容函数

ps:标准差的两种计算公式

1.如果我们取一个样本的全部数据,求标准差的公式如下图

2.如果我们仅取一个样本的部分数据,我们可以估计样本的标准差的值,这时我们使用公式如下图

 3.一般来说,我们在统计大数据样本时更多使用的是估计出来的标准差,所以为了代码的实用性这里选择的是第二种标准差的求法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值