0
点赞
收藏
分享

微信扫一扫

​mooc《Python语言程序设计》嵩天老师 课堂程序分析(九)

绪风 2022-03-30 阅读 39
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提供的内容函数

举报

相关推荐

0 条评论