二级 Python 综合应用题

高仿模拟练习,完整编写程序并运行出结果,答案点击按钮展开

146综合应用题:健壮的成绩统计(含错误数据)

scores_raw.txt 每行格式:学号,成绩。 但存在以下错误:空行、缺少逗号、成绩不是整数、成绩不在 0-100 之间。 请用 try-except 跳过错误行。输出: 1) 有效成绩条数; 2) 有效成绩平均分(保留 2 位小数); 3) 最高分及最低分。

# scores_raw.txt 示例内容:
# 001,85
# 002,abc
# 
# 003,105
# 004,92
# 005
valid = []
with open("scores_raw.txt") as f:
    for line in f:
        line = line.strip()
        # 请在下面编写完整程序:try-except 跳过错误行,valid 收集成绩
参考答案
valid = []
with open("scores_raw.txt") as f:
for line in f:
line = line.strip()
if not line:
continue
try:
sid, score_str = line.split(",")
score = int(score_str)
if 0 <= score <= 100:
valid.append(score)
except (ValueError, IndexError):
continue
print(len(valid))
avg = sum(valid) / len(valid)
print("{: .2f}".format(avg))
print(max(valid))
print(min(valid))
解析

空行先过滤;split(",") 拆两段;int() 解析失败抛 ValueError('abc' / '005' 无逗号拆分也失败或 len!=2)。

try...except(ValueError, IndexError) 整段包裹。0≤score≤100 再过滤范围。

示例 valid=[85,92] → 有效2条,平均 88.50,max92,min85。

试题及答案仅供练习参考,不保证完全准确,正式考试请以NCRE官方教材及官方内容为准。

©2026 NCRE二级题库 版权所有