实例:基本统计计算
视频学习:
https://www.bilibili.com/video/av42408424/?p=159
https://www.bilibili.com/video/av42408424/?p=160
https://www.bilibili.com/video/av42408424/?p=161
统计是计算科学、管理学、社会学、数学等诸多领域的基本问题。相关问题、方法和技术组成的一门学科,称为统计学。
计算一组数据中的平均值、标准方差和中位数是统计中常见的计算。
通过IPO来描述问题如下 :
输入(Input): 从用户、文件、网络等途径获取一组数据
处理(Process): 适当的数据结构来存储数据,并通过算法对数据进行处理
输出(Output): 这组数据的平均值、标准方差和中位数
可以使用函数的方式编写针对平均值(mean)、标准方差(dev)和中位数(median)的计算。定义获取数据的函数getNum, 由于此问题未限定用户输入数据的最大个数,就选使用列表(list)来存储数据,以便灵活处理。
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
#-----编写main函数,调用这些函数,进行调试检验
def main():
n = getNum() #主体函数
m = mean(n)
print("平均值:{},方差:{:.2},中位数:{}.".format(m, dev(n,m),median(n)))
main()

运行:


