python—基本统计值计算


 

实例9:基本统计值计算

#计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬除中位数外,其他输出保留小数点后两位
def getNum():
    nums = []
    iNumStr = input("请输入数字(回车退出):")
    while iNumStr != "":    #死循环判断为空退出,不为空就继续输入并添加到列表里
        nums.append(eval(iNumStr))
        iNumStr = input("请输入数字(回车退出):")
    return nums
#计算平均值,必须先求和,用总和数 除以 总个数等于平均值
def mean (numbers):          #例:numbers=1,2,3  共3个数字
    s = 0.0                  #定义一个结果为0
    for num in numbers:
        s = s +num           #和是1+2+3=6 那么s=6
    return s / len(numbers)  #6除以3等于平均值2
# 计算方差,需要算出平均值
def dev(numbers,mean):             #两参数用户输入列表和平均值
    sdev = 0.0                      #例:numbers=1,2,3,4 共4个数字 上一步算出平均值2.5
    for num in numbers:             #(1-2.5)**2==2.25 sdev=2.25
        sdev = sdev + (num - mean)**2  #逐一取数减平均值再得出平方,累加到sdev里
    return pow(sdev / (len(numbers)-1),0.5) #sdev除(4-1)==0.75的0.5次方==1.299
#计算中位数
def median(numbers):
    numbers.sort()   #进行原列表排序,使用sorted排序必须有返回值numbers = sorted(numbers)
    size = len(numbers)   #例:numbers=1,2,3,4    size=4
    if size % 2 ==0:    #判断为偶数取中间两位数,4//2-1 =1  切片是从0开始所以减1位
        med = (numbers[size//2-1] + numbers[size//2])/2  #//为整除,/为浮点数
    else:              #或为奇数,切片总长度除2,取中间一位
        med = numbers[size//2]
    return med

n = getNum()
m = mean(n)
print("平均值:{},方差:{:.2},中位数:{}".format(m,dev(n,m),median(n)))

  

 

 python123练习题:代码大致一样,input输入不同 需转换类型

def getNum():  # 获取用户不定长度的输入
    nums = eval(input())   # s = eval(input())
    return list(nums)      # nums = list(s)   return nums
#如果不转换列表类型,则下方排序需使用numbers = sorted(numbers)来排序,此方法必须有返回值
def mean(numbers):  # 计算平均值
    s = 0.0
    for num in numbers:
        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):  # 计算中位数
    numbers.sort()    #列表排序
    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("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m, dev(n, m), median(n)))

  

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM