如何在计算平均成绩时移除for循环输入的最低测验分数?
解决方法:保存分数列表后去除最低分
你的问题出在只累加了总分,没保留每个分数的记录,所以没法定位并去掉最低分。改成用列表存储所有输入的分数,就能轻松解决这个问题:
print("Please enter 5 quiz grades.") print(" ") # 初始化空列表,用来存所有输入的分数 quiz_grades = [] for i in range(5): quizgrade = float(input("Quiz grade: ")) quiz_grades.append(quizgrade) # 把每个输入的分数加入列表 # 计算去掉最低分后的总分:所有分数总和减去最低分 total_without_lowest = sum(quiz_grades) - min(quiz_grades) # 如果需要算平均分,就用处理后的总分除以4(5个分数去掉1个,剩4个有效分数) average_without_lowest = total_without_lowest / 4 print(" ") print(f"Total without lowest grade: {total_without_lowest}") print(f"Average without lowest grade: {average_without_lowest}")
核心逻辑说明:
- 用列表
quiz_grades存储每一个输入的分数,这样能完整保留所有分数的数值,方便后续找最低分 - 用Python内置的
sum()函数直接计算所有分数的总和,min()函数快速定位列表里的最低分,两者相减就得到了去掉最低分后的总分 - 若需要平均分,直接用处理后的总分除以4即可(因为去掉了1个最低分,剩余4个有效分数)
内容的提问来源于stack exchange,提问作者Erik Askerov
相关产品推荐
相关产品推荐

