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

如何逐行对比文件中同一行的两个数值并统计胜负平次数

问题分析与修正代码

需求:逐行读取2022_sport.txt文件,每行格式为[FGCU得分]-[对手得分],对比两列整数,统计FGCU队的获胜(fgcuWins)、失利(fgcuLoses)及平局(ties)次数。

原代码存在的问题

  • 未定义变量char,直接使用会导致报错,且未对每行比分做分割处理
  • 未将字符串格式的比分转换为整数,直接比较字符串会得到错误结果(比如字符串"10"会被判定为小于"2",但实际整数10更大)
  • 错误地对循环变量lines执行+=1操作,lines是当前行的文本内容,并非计数器
  • 未正确管理文件资源,建议用with语句自动完成文件关闭

修正后的代码

fgcuWins = 0
fgcuLoses = 0
ties = 0

# 使用with语句自动管理文件,无需手动关闭
with open("2022_sport.txt", "r") as file:
    for line in file:
        # 去除行尾换行符,按'-'分割比分
        fgcu_score, opp_score = line.strip().split('-')
        # 转换为整数进行数值比较
        fgcu = int(fgcu_score)
        opp = int(opp_score)
        
        if fgcu == opp:
            ties += 1
        elif fgcu > opp:
            fgcuWins += 1
        else:
            fgcuLoses += 1

print(f"FGCU获胜次数: {fgcuWins}")
print(f"FGCU失利次数: {fgcuLoses}")
print(f"平局次数: {ties}")

代码说明

  1. with open(...)语句会在代码块结束后自动关闭文件,避免资源泄漏
  2. 对每行执行strip()去除换行符和多余空格,再用split('-')分割成FGCU得分和对手得分的字符串
  3. 将分割后的字符串转为整数,确保数值比较的正确性
  4. 根据整数比较结果,分别累加对应的统计变量

结合给定的2022_sport.txt内容,运行修正代码后会得到正确结果:

  • 获胜次数:12
  • 失利次数:6
  • 平局次数:1

内容的提问来源于stack exchange,提问作者Mikehouse627

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:10:35