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

CS50P Felipe’s Taqueria项目:EOF输入致程序异常退出问题

问题原因与解决方案

你遇到的退出码错误,核心原因是程序未处理EOFError异常。

在Python中,使用input()函数读取输入时,若输入流提前结束(比如CS50平台通过Ctrl+D触发EOF),解释器会抛出EOFError。如果代码没有捕获这个异常,程序会直接终止并返回非0的退出码——这和平台要求的正常退出(退出码0)不符,因此报错。本地运行正常是因为你通常通过手动输入内容后按回车结束,没有触发EOF场景。

修复方法

给输入循环添加try-except块,捕获EOFError后主动以退出码0结束程序。示例修改如下:

menu = {
    "taco": 3.00,
    "burrito": 5.00,
    "nachos": 4.50,
    "quesadilla": 4.00,
    "chips": 2.00
}
total = 0.0

try:
    while True:
        item = input("Item: ").strip().lower()
        if item in menu:
            total += menu[item]
            print(f"Total: ${total:.2f}")
except EOFError:
    # 可选:打印最终总价(若题目要求),或仅换行避免输出混乱
    print()
    exit(0)

这段代码中,当触发EOF时,程序会进入except块,执行exit(0)主动返回退出码0,满足平台的测试要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:35:00