pythonpython评委输入 10 个评分,根据评委给出的评分列表,统计出各个分数段 ( 90-100、80-89、70-79 与 69 及以下)的评委人数。然后去掉其中的最高分和最低分,计算平均分将其作为最后得分,并将剩下的评分从高到低排序。(用列表进行完成)
时间: 2024-11-28 09:26:46 浏览: 9
python入门与实践--作业21
在Python中,你可以按照以下步骤来实现这个功能:
1. 首先,你需要创建一个函数来接收评委的评分列表作为输入。
```python
def process_scores(grades):
```
2. 然后,你可以使用列表推导式和字典来统计每个分数段的人数,以及去掉最高分和最低分:
```python
score_ranges = {
'90-100': [],
'80-89': [],
'70-79': [],
'<=69': []
}
grades.sort() # 先对评分进行排序
# 统计分数段并去掉最高分和最低分
for grade in grades[1:-1]: # 排除最高和最低分
if grade >= 90:
score_ranges['90-100'].append(grade)
elif grade >= 80:
score_ranges['80-89'].append(grade)
elif grade >= 70:
score_ranges['70-79'].append(grade)
else:
score_ranges['<=69'].append(grade)
# 计算每个分数段的平均分
averages = {k: sum(v) / len(v) if v else None for k, v in score_ranges.items()}
# 对剩下的评分从高到低排序
sorted_grades = sorted(grades[1:-1], reverse=True)
return score_ranges, averages, sorted_grades
```
3. 最后,在函数内部调用这个过程并返回结果:
```python
def main():
scores = [int(input("请输入评委的评分(整数): ")) for _ in range(10)] # 获取10个评分
result = process_scores(scores)
print(f"各分数段评委人数:{result[0]}")
print(f"去除最高分和最低分后的平均分:{result[1]}")
print(f"剩余评分按高低排序:{result[2]}")
if __name__ == "__main__":
main()
```
当你运行这段代码时,它会提示用户依次输入10个评分,然后显示分析结果。记得,实际应用中你需要处理用户输入的数据验证,这里为了简洁演示而省略了。
阅读全文