使用函数获取列表输入的平均值

时间:2017-10-27 20:12:31

标签: python function sum average

我应该设计这个程序,为学生获得多个测试分数,并将分数存储在列表中,从列表中删除最低分,然后计算平均分数。  当我运行代码时,我收到错误

  

TypeError:+:'int'和'str'

的不支持的操作数类型
def get_scores(grade):
    test_num = int(input('How many test scores do you want to enter: '))
    for t in range(test_num):
        print('Enter score for Test #', t+1, sep='')
        grade.append(input('Enter Score: '))
    return grade

def calculate_average(grade):
    grade.remove(min(grade))
    grade = (sum(grade))/len(grade)
    return grade

def show_results(grade):
    print('Average:', grade)

def main():
    scores = []
    get_scores(scores)
    calculate_average(scores)
    show_results(scores)


main()

1 个答案:

答案 0 :(得分:1)

input()返回一个字符串,而不是整数。这意味着scores中包含一串字符串,而不是整数,您可以sum()列出字符串。

grade.append(input('Enter Score: '))更改为grade.append(int(input('Enter Score: ')))

编辑:要修复评论中提到的错误,您需要更改主要功能:

def main():
    scores = []
    get_scores(scores)
    final_score = calculate_average(scores)
    show_results(final_score)