运动会即将开始,需要帮忙编写一个程序用来计算运动员得分。
输入以空格分隔输入10个数字作为打分,数字需在0-10分之间,可以是小数,程序输出以下信息:
1.有效打分个数
2.最高分
3.最低分
4.最终得分
其中,有效打分个数为在0-10之间的打分个数:最终得分为有效得分中,去掉1个最高分和1个最低分后剩下的分
数取平均。小数点保留2位。
例如:
输入: 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 10.0
输出:
有效打分个数:10个
最高分:10.00分
最低分:1.10分
最终得分:6.05分
你题目的解答代码如下:
li = list(map(float,input().split()))
li = list(filter(lambda x: 0<=x<=10,li))
print(f'有效打分个数:{len(li)}个')
print(f'最高分:{max(li):.2f}分')
print(f'最低分:{min(li):.2f}分')
print(f'最终得分:{(sum(li)-max(li)-min(li))/(len(li)-2):.2f}分')
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
#input函数输入字符串;split()以空格分割,得到一个字符串列表;map函数对字符串进行类型转换,在转为list
fs = list(map(int, input().split()))
#循环判断list中的元素是否属于有效,无效则从list中删除元素
for i in range(len(fs)):
if 0 > fs[i] or fs[i] > 10:
del fs[i]
#计算
print('有效打分个数', len(fs))
print('最高分', max(fs))
print('最低分', min(fs))
print('最终得分', sum(fs)/len(fs))