实例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提供的内容函数










