python 案例3:有一score.csv文件,记录了同学的语数外的成绩、综合测评和体育成绩 综合测评有ABCD四个等级,体育成绩有优秀良好及格不及格四个等级 现计算每个人的总分并人高到低的排序,显示姓名和总分。 ABCD折算为100、80、60、0。 优秀良好及格不及格折算为100、80、60、0
时间: 2023-07-10 10:04:02 浏览: 75
首先,我们需要读取score.csv文件并将数据存储到一个列表中。然后,我们可以计算每个人的总分并将其添加到列表中。最后,我们可以使用sorted函数将列表按照总分从高到低排序,并打印出每个人的姓名和总分。
下面是代码示例:
```python
import csv
# 读取score.csv文件并将数据存储到一个列表中
scores = []
with open('score.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
scores.append(row)
# 计算每个人的总分并将其添加到列表中
for i in range(1, len(scores)):
total_score = int(scores[i][1]) + int(scores[i][2]) + int(scores[i][3])
if scores[i][4] == 'A':
total_score += 100
elif scores[i][4] == 'B':
total_score += 80
elif scores[i][4] == 'C':
total_score += 60
else:
total_score += 0
if scores[i][5] == '优秀':
total_score += 100
elif scores[i][5] == '良好':
total_score += 80
elif scores[i][5] == '及格':
total_score += 60
else:
total_score += 0
scores[i].append(total_score)
# 按照总分从高到低排序并打印出每个人的姓名和总分
scores_sorted = sorted(scores[1:], key=lambda x: x[6], reverse=True)
for i in range(len(scores_sorted)):
print(scores_sorted[i][0], scores_sorted[i][6])
```
在这个示例中,我们使用了Python内置的csv模块来读取CSV文件。我们将数据存储到一个名为scores的列表中,并使用for循环计算每个人的总分并将其添加到列表中。然后,我们使用sorted函数将列表按照总分从高到低排序,并打印出每个人的姓名和总分。