You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

作业需求:从.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:23:16