【问题标题】:Getting the average of list inputs using Functions使用函数获取列表输入的平均值
【发布时间】:2017-10-27 20:12:31
【问题描述】:

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

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()

【问题讨论】:

标签: python function sum average


【解决方案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)

【讨论】:

  • 我之前尝试过,但不是错误,它只显示没有最低分数但不计算平均值的列表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2016-11-22
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多