作业需求:从.txt文件计算运动员平均分并以姓名、平均分两列展示
解决方案
核心步骤说明
- 拆分每行内容:用字符串的
split()方法把每行拆分成多个部分,第一个部分是运动员姓名,剩下的四个是分数。 - 循环处理所有行:
for line in infile已经能遍历文件的每一行,不需要额外调用readline()。 - 计算平均分:把拆分出的四个分数转为整数,求和后除以4得到平均分。
- 调用展示函数:在循环里计算完平均分后,直接调用
displayData输出结果。
修改后的完整代码
def openReadFile(golf_scores): # 打开文件 infile = open(golf_scores, 'r') # 遍历文件每一行 for line in infile: # 去掉行尾换行符并拆分内容 parts = line.strip().split() # 第一个元素是姓名 player = parts[0] # 提取四个分数并转为整数 score1 = int(parts[1]) score2 = int(parts[2]) score3 = int(parts[3]) score4 = int(parts[4]) # 计算平均分 average = (score1 + score2 + score3 + score4) / 4 # 调用展示函数 displayData(player, average) # 关闭文件 infile.close() def displayData(player, average): # 格式化输出姓名和平均分,保持对齐 print(f'{player:<10} {average:.2f}') # 调用函数,替换成你的文件名 openReadFile('golf_scores.txt')
补充说明
- 假设你的txt文件每行格式为
姓名 分数1 分数2 分数3 分数4,示例内容:张三 85 90 78 82 李四 92 88 76 85 strip()用来去掉每行开头结尾的空格和换行符,避免拆分出空内容。:.2f用来格式化平均分保留两位小数,显示更规范。<10让姓名占10个字符宽度,保证两列对齐整齐。
内容的提问来源于stack exchange,提问作者Tiffany
相关产品推荐
相关产品推荐

