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

Python作业程序本地运行正常,代码检测时报EOFError输入错误是什么原因?

报错原因

EOFError: EOF when reading a line 错误本质是input()函数尝试读取输入时,输入流已经为空没有内容可读了。
你本地运行时属于交互式环境,可以手动逐行输入代码要求的所有参数,所以不会触发问题;但代码检测平台为自动化非交互测试环境,只会按照作业要求预先提供固定行数的测试输入,你代码开头强制要求读取7个初始参数,后续菜单循环也要求读取用户选择,当平台提供的测试输入行数不足时,就会触发该报错。从你给出的报错日志来看,第一个参数读取完成后读第二个参数时就已经触发EOF,说明平台提供的测试输入连2行都没有。

修复方案

  • 第一步先核对作业的输入规则,确认题目要求的输入格式、输入行数、是否允许缺省参数使用默认值,严格按照题目要求调整输入读取逻辑,不要硬编码7个必须读取的input()。
  • 可以给输入逻辑增加异常捕获,避免读取到EOF直接崩溃,示例代码如下:
# 封装安全读取输入的方法
def get_input(prompt, default_val):
    try:
        return float(input(prompt))
    except EOFError:
        return default_val

# 替换原有输入读取逻辑,可根据作业要求设置合理默认值
cost_per_ice_cream_serving = get_input("Enter Cost per ice cream serving: ", 2.5)
labor_rate = get_input("Employee labor rate (per hour): ", 20)
shop_rental = get_input("Shop rental (per month): ", 3000)
utilities = get_input("Utilities (per month): ", 500)
advertising = get_input("Advertising (per month): ", 1000)
selling_price = get_input("Selling price (each): ", 12)
serve_sold_per_month = get_input("Ice cream servings sold per month: ", 1000)
  • 先修复你现有代码的缩进错误:while True: 下方的所有代码都没有缩进,本地运行也会直接报语法错误,需要把print(menu)及之后的代码都缩进一层,放在while循环内部。
  • 如果作业要求平台测试时不需要走交互式菜单,可以在代码中增加判断逻辑,非交互式环境下直接执行指定的计算逻辑输出结果即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:54:03