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

PY4E练习8.5输出符合预期却报不匹配错误问题咨询

问题成因
  • 多余的输入提示被计入输出校验:input("Enter the filename:")中的提示字符串会直接输出到标准输出流,而PY4E的自动判题系统的预期输出不包含这行提示内容,多出来的内容会直接导致输出匹配失败。你本地运行时会自动忽略输入提示的存在,只关注后续的输出结果,所以会觉得本地运行结果符合预期。
  • 行筛选规则不符合题目要求:Exercise 8.5明确要求匹配以From (无冒号,后接空格)开头的行,你当前使用的startswith("From:")匹配的是带冒号的邮件头部行,虽然两者提取的邮箱内容一致,但部分判题场景会校验行匹配逻辑的正确性,也可能触发错误。
  • 缺少文件关闭操作:代码打开文件后没有主动关闭,部分严格的运行环境会检测资源泄漏问题,也可能导致判题不通过。
解决方法

将代码调整为以下版本即可:

filename = input()
fh = open(filename, 'r')
count = 0

for line in fh:
    line = line.rstrip()
    if not line.startswith("From "):
        continue
    count += 1
    words = line.split()
    print(words[1])
    
print("There were", count, "lines in the file with From as the first word")
fh.close()

调整说明

  • 移除了input函数内的提示文本,避免多余内容输出到控制台
  • 将行匹配规则从"From:"修改为"From ",完全对齐题目要求的筛选逻辑
  • 新增了文件关闭操作,避免资源占用问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 19:06:05