python day 18 基本统计值

基本统计值:平均数、众数、中位数、方差,不过首先是要获取用户输入的随机数据

def getnumber():
    numbers=[]
    number = input('请输入数据(回车结束):')
    while number !=  '':
        numbers.append(eval(number))
        number = input('请输入数据(回车结束):')
    return numbers

def sum(numbers):
    s = 0
    for i in numbers:
        s += i
    return s 
        
def average(numbers):
    return sum(numbers)/len(numbers)

counts = {}
def most(numbers):
    global counts
    for i in numbers:
       counts[i] = counts.get(i,0)+1
    items = list(counts.items())
    items.sort(key = lambda x:x[1],reverse = True)
    number,time = items[0]
    return str(number)+'共'+str(time)+'次'
def media(numbers):
    count = len(numbers)
    numbers = sorted(numbers)
    if count%2 == 0:
        return (numbers[count/2-1]+numbers[count/2])/2
    if count%2 != 0 :
        return numbers[count//2]

        
def fangcha(numbers):
    quare_minus = []
    for i in numbers:
        i = (i - average(numbers))**2
        quare_minus.append(i)
    return sum(quare_minus)/len(numbers)
a = getnumber()
print ('平均数{:.3f}
众数{}
中位数{}
方差{:.3f}'.format(average(a),most(a),media(a),fangcha(a)))

原文地址:https://www.cnblogs.com/cfqlovem-521/p/12115306.html