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}\n众数{}\n中位数{}\n方差{:.3f}'.format(average(a),most(a),media(a),fangcha(a)))

posted @ 2019-12-29 16:11  191206  阅读(145)  评论(0编辑  收藏  举报