大家好,给大家分享一下慕课python程序设计答案,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
大家好,给大家分享一下python123和中国大学慕课,很多人还不知道这一点。下面详细解释一下用python画皮卡丘代码。现在让我们来看看!
实例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.一般来说,我们在统计大数据样本时更多使用的是估计出来的标准差,所以为了代码的实用性这里选择的是第二种标准差的求法