文件studentscore.txt包含了学生在期末考试中的成绩。编写一段程序,根据分数进行升序排序后,输出学生的数量,成绩的最低分和最高分,成绩为前n名和后n名的同学姓名(n为非负数,当n大于数据行数时,按实际行数输出),以及平均成绩(保留小数点后2位)。
时间: 2024-01-02 15:04:21 浏览: 33
好的,以下是一个实现上述功能的 Python 程序:
```python
import operator
# 读取文件内容
with open('studentscore.txt', 'r') as f:
lines = f.readlines()
f.close()
# 存储学生姓名和分数
scores = {}
# 解析文件内容
for line in lines:
name, score = line.strip().split()
scores[name] = float(score)
# 按分数排序
sorted_scores = sorted(scores.items(), key=operator.itemgetter(1))
# 输出结果
num_students = len(sorted_scores)
min_score = sorted_scores[0][1]
max_score = sorted_scores[-1][1]
avg_score = sum(scores.values()) / num_students
print("Number of students:", num_students)
print("Minimum score:", min_score)
print("Maximum score:", max_score)
print("Average score: %.2f" % avg_score)
n = int(input("Enter the value of n: "))
if n >= num_students:
n = num_students - 1
print("Top %d students:" % n)
for i in range(n):
print(sorted_scores[i][0])
print("Bottom %d students:" % n)
for i in range(num_students - n, num_students):
print(sorted_scores[i][0])
```
程序首先读取文件 `studentscore.txt` 的内容,并将学生姓名和分数存储在一个字典 `scores` 中。然后使用 Python 的 `sorted` 函数按分数排序。程序接下来输出学生数量、最低分和最高分、平均分等统计信息,并提示用户输入一个数 `n`,代表需要输出前 `n` 名和后 `n` 名同学的姓名。程序最后按要求输出结果。
阅读全文