载附件,该附件包含若干个学生的考号,班别,语数英等各科成绩。编写程序,统计各班数学的平均分并按从高到低的顺序输出(平均分保留2位小数),输出结果参考下图。附件是utf8格式。
时间: 2024-02-25 20:56:52 浏览: 79
用Excel电子表格实现学生成绩统计优质资料.doc
好的,根据你提供的描述,我了解到你需要对一个包含学生考号、班别、语数英成绩的数据进行处理。以下是Python代码的实现:
```python
# 读取文件内容
with open("data.txt", "r", encoding="utf-8") as f:
content = f.readlines()
# 处理数据
data = {}
for line in content:
line = line.strip().split(",")
class_id = line[1]
math_score = float(line[3])
if class_id in data:
data[class_id]["count"] += 1
data[class_id]["total"] += math_score
else:
data[class_id] = {"count": 1, "total": math_score}
# 计算平均分
for class_id in data:
data[class_id]["avg"] = data[class_id]["total"] / data[class_id]["count"]
# 按平均分从高到低排序
sorted_data = sorted(data.items(), key=lambda x: x[1]["avg"], reverse=True)
# 输出结果
print("{:^20}{:^20}".format("班别", "平均分"))
for item in sorted_data:
print("{:^20}{:^20.2f}".format(item[0], item[1]["avg"]))
```
该程序首先读取文件内容,并使用字典`data`统计各个班的数学成绩总分和人数。接着,程序计算平均分,将结果存储在`data`字典中。最后,程序按平均分从高到低排序,并输出结果。
注意,程序默认数据文件名为"data.txt",如果实际文件名不同,请修改文件名。另外,程序默认文件编码格式为"utf-8",如果实际文件编码格式不同,请修改编码格式。
阅读全文