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

Python编写循环反转输入文本程序时出现EOF error是什么原因?

EOFError 触发原因
  • 根本原因:input() 函数尝试读取输入时,标准输入流已经没有可读取的内容,就会抛出该错误。常见触发场景包括在线OJ的测试用例输入已全部读取完毕、用户手动输入了EOF终止快捷键(Windows下为Ctrl+Z,Linux/macOS下为Ctrl+D)。
  • 你的代码逻辑缺陷:你仅对输入内容为Done/done/d的场景做了终止判断,完全没有兼容输入流直接结束的场景。当输入流提前终止时,你写在循环末尾的input()调用没有任何异常处理机制,就会直接报错。

另外你的代码还有两处可优化的冗余逻辑:

  1. 字符串反转无需手动写for循环遍历,Python原生支持切片语法[::-1]直接反转字符串
  2. 循环内的if i == len(user_inp)判断完全多余,for循环遍历完成后i必然满足该条件
修复后代码示例
while True:
    try:
        user_inp = input()
    except EOFError:
        # 捕获到输入流结束,直接退出循环
        break
    # 统一转小写判断,简化判断逻辑
    if user_inp.lower() in ('done', 'd'):
        break
    print(user_inp[::-1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:06:01