【问题标题】:python will not print out averagepython不会打印出平均值
【发布时间】:2021-06-27 19:52:07
【问题描述】:

我正在尝试打印平均值和中位数,但我不明白我在这里做错了什么,当我的列表是偶数时,我的代码不会打印出中位数。

def print_hi(name):

    sum = 0
    count =0
    average = 0
    list = []
    list2 = []
    while 1:
        enter = float(input('Enter som numbers: '))
        string = str(enter)
        if enter == 0:
            break
        else:
            count += 1
            sum += enter
            average = sum/count
            list.append(string)
    leng = len(list)//2
    left = leng-1
    raghit = leng+1
    if (leng % 2) == 1:
        median = (list[leng])
        print('Median: ', median)
    else:
        median = (left+raghit)/2
        print('Median : ', median)
    print('Average :', round(average, 2))



if __name__ == '__main__':
    print_hi('PyCharm')

【问题讨论】:

    标签: python median


    【解决方案1】:

    您的代码中有几个错误

    1. 在 else 块中,在计算中位数时,您添加了索引而不是这些索引处的值。
    2. 代码中正确的索引raghit 不是leng+1,而是leng
    3. 检查第一个 if 块的条件不是leng%2==1,而是len(list)%2==1

    所以更新后的代码是

    sum = 0
    count =0
    average = 0
    list = []
    list2 = []
    while 1:
        enter = float(input('Enter som numbers: '))
        string = str(enter)
        if enter == 0:
            break
        else:
            count += 1
            sum += enter
            average = sum/count
            list.append(enter)
    leng = len(list)//2
    left = leng-1
    raghit = leng
    if (len(list) % 2) == 1:
        median = (list[leng])
        print('Median: ', median)
    else:
        median = (list[left]+list[raghit])/2
        print('Median : ', median)
    print('Average :', round(average, 2))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多