编写程序, (用列表)处理大众评委给某选手的评分。

功能要求: (1)输入分数为整数,输入的分数个数任意(参与评分人数不一定);
(2) 去掉前 10%(四舍五入)的较高分,去掉后 10%(四舍五入)的较低分,剩余为有效分数;
(3)有效评分的平均值为选手的得分。输入要求:
(4) 一次能输入所有评分,假定输入为 100 内的整数,个数任意。输出内容:
(5)原始分数个数、原始分数序列(原输入顺序)。
(6) 有效分数个数、有效分数排序(按降序)
(7)分数平均分(四舍五入,保留1位小数)

img


为什么这个程序小于五个数字就不减去最大值和最小值呢

当length<6时 round(length*0.1)=0
此时 s[l:length-l] == s 就不去掉值了

score = input('请输入评分,以空格间隔:').split()
s = sorted(score)
l = round(len(s)/10)
new_s = s[l:-l]
print(len(score),score)
print(len(new_s),sorted(new_s,reverse=True))
print(round(sum(int(i) for i in new_s)/len(new_s),1))