如何使用Python读取文本文件中的分数并计算平均分?
Python实现跳过非数字行计算分数平均分方案
核心思路是逐行读取文件内容,通过异常捕获机制过滤无法转换为数字的行,自动统计所有有效分数后计算平均分,无需提前预设分数数量。
完整实现代码
# 此处修改为你的实际文件路径 FILE_PATH = "score.txt" valid_scores = [] # 用上下文管理器读取文件,自动处理资源释放 with open(FILE_PATH, "r", encoding="utf-8") as file: for line in file: # 去除每行首尾的换行符、空格等空白字符 processed_line = line.strip() # 跳过空行 if not processed_line: continue try: # 尝试转换为整数,转换成功即为有效分数 current_score = int(processed_line) valid_scores.append(current_score) except ValueError: # 转换失败是非数字行,直接跳过不处理 continue # 避免无有效分数时触发除以0报错 if valid_scores: sum_score = sum(valid_scores) count = len(valid_scores) avg_score = sum_score / count print(f"有效分数数量:{count},总分:{sum_score},平均分:{avg_score:.2f}") else: print("未在文件中检测到有效数字分数")
方案特性
- 自动适配任意数量的分数,不管文件长度怎么变都可以正常运行
- 不限制非数字行的位置,哪怕非数字行出现在中间、末尾都可以正确过滤
- 额外处理了空行场景,避免空行导致的异常
- 自带除以0防护,文件无有效分数时不会报错
内容的提问来源于stack exchange,提问作者ProcessInvalid2020
相关产品推荐
相关产品推荐

