#统计出所有不合格的成绩形式为: #不合格成绩为:张三:数学,50;张三:生物,43.3;…… #可查询平均成绩,整体最高分,各科目最高分; #能够查询某个同学的某项成绩,查询形式参考 张三:数学 #能够查询某个同学的总分,查询形式参考 张三:总分 #能够查询某个同学的最高分,查询形式参考 张三:最高分 #能够查询某个同学的所有不合格科目 查询形式参考 张三:不合格科目
时间: 2024-01-06 15:03:28 浏览: 23
好的,以下是一个示例代码,实现了上述所有功能:
```
# 读取成绩文件
with open('scores.txt', 'r') as f:
lines = f.readlines()
# 统计不合格成绩
unqualified_scores = []
for line in lines:
name, course, score = line.strip().split(',')
if float(score) < 60:
unqualified_scores.append(f'{name}:{course},{score}')
if len(unqualified_scores) > 0:
print('不合格成绩为:' + ';'.join(unqualified_scores))
# 计算平均成绩、整体最高分、各科目最高分
total_score = 0
max_score = 0
max_scores_by_course = {}
scores_by_name = {}
for line in lines:
name, course, score = line.strip().split(',')
score = float(score)
total_score += score
if score > max_score:
max_score = score
if course not in max_scores_by_course or score > max_scores_by_course[course]:
max_scores_by_course[course] = score
if name not in scores_by_name:
scores_by_name[name] = []
scores_by_name[name].append(score)
average_score = total_score / len(lines)
print(f'平均成绩为:{average_score:.2f}')
print(f'整体最高分为:{max_score}')
for course, max_score in max_scores_by_course.items():
print(f'{course}的最高分为:{max_score}')
# 查询某个同学的某项成绩
target_name = '张三'
target_course = '数学'
for line in lines:
name, course, score = line.strip().split(',')
if name == target_name and course == target_course:
print(f'{target_name}的{target_course}成绩为{score}')
break
# 查询某个同学的总分、最高分、不合格科目
target_name = '张三'
target_scores = []
target_total_score = 0
target_max_score = 0
target_unqualified_courses = []
for line in lines:
name, course, score = line.strip().split(',')
if name == target_name:
score = float(score)
if score > target_max_score:
target_max_score = score
target_total_score += score
target_scores.append(score)
if score < 60:
target_unqualified_courses.append(course)
print(f'{target_name}的总分为{target_total_score:.1f}')
print(f'{target_name}的最高分为{target_max_score}')
if len(target_unqualified_courses) > 0:
print(f'{target_name}的不合格科目为:{",".join(target_unqualified_courses)}')
```
这个示例代码中,我们首先读取成绩文件,并按照题目要求依次进行不合格成绩统计、平均成绩计算、各科目最高分计算、整体最高分计算、查询某个同学的某项成绩、查询某个同学的总分、查询某个同学的最高分、查询某个同学的所有不合格科目。其中,查询功能可以根据需要进行组合调用。