一、问题分析
基本统计值
需求:给出一组数,对它们有个概要理解
总个数、求和、平均值、方差、中位数…
如:
- 总个数:len()
- 求和:for … in
- 平均值:求和/总个数
- 方差:各数据与平均数差的平方和的平均数
- 中位数:排序,然后…
奇数找中间1个,偶数找中间2个取平均
二、"基本统计值计算"实例讲解
程序基本构成:获取多数据输入、通过函数分隔功能
#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)))
三、"基本统计值计算"举一反三
通过本例我们应学会:
- 获取多个数据:从控制台获取多个不确定数据的方法:
通过while语句,输入不确定数量的数据,并将其保存在列表变量中;
- 分隔多个函数:模块化设计方法
- 充分利用函数:充分利用Python提供的内置函数:
sorted(); len();pow() 等