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

TCS 2023 Python实操题:EOFError报错排查与代码修复

TCS 2023 Python实操题:EOFError排查与修复

问题背景

代码通过City类、CovBedsAnalysis类实现新冠床位统计分析功能,但运行时触发EOFError,提示读取行时遇到文件结束。

核心原因

这类报错通常源于输入读取逻辑未处理输入流耗尽的情况:

  • 使用input()或sys.stdin.readline()循环读取时,输入内容全部读完后仍尝试继续读取
  • 读取次数与实际输入行数不匹配(比如测试输入先给出总行数,但代码读取次数超过该数值)

修复方案

方案1:捕获EOFError异常终止循环

适用于不确定输入行数的场景,直接捕获异常结束读取流程:

try:
    while True:
        line = input().strip()
        # 调用City/CovBedsAnalysis类的相关处理逻辑
except EOFError:
    # 输入结束,正常退出
    pass

方案2:通过sys.stdin迭代读取

利用Python文件对象的迭代特性,自动在输入结束时停止循环:

import sys

for line in sys.stdin:
    line = line.strip()
    if not line:
        continue  # 跳过空行
    # 调用City/CovBedsAnalysis类的相关处理逻辑

方案3:按指定行数读取

如果测试输入开头给出数据总行数,严格按行数读取,避免超出输入范围:

# 假设输入第一行为数据总行数
total_lines = int(input())
for _ in range(total_lines):
    line = input().strip()
    # 调用City/CovBedsAnalysis类的相关处理逻辑

验证步骤

  1. 确认测试输入格式与代码读取逻辑匹配(比如是否有总行数、每行数据格式是否符合预期)
  2. 运行修复后的代码,对比预期输出确认床位统计分析功能正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:22:47