高仿模拟练习,完整编写程序并运行出结果,答案点击按钮展开
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)
.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。