1. 程式人生 > >python求解數字的平均值、方差、中位數

python求解數字的平均值、方差、中位數

# 定義數字輸入函式
def getNum():
    nums = []
    iNumStr = input("請輸入數字(回車退出):")
    while iNumStr != "":    #當輸入為空時,跳出迴圈
        nums.append(eval(iNumStr))     #在nums列表後加入輸入的數字
        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)     #使用sorted()函式對列表進行排序
    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},中位數:{}.".format(m, dev(n, m), median(n)))