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

Zybooks在线编程环境运行Python代码触发第5行EOFError问题求助

Python代码在Zybooks平台运行出现EOFError的成因与解决方案

报错背景

你编写的代码如下:

user_num = int(input('Enter integer:\n'))
print(user_num)
print(user_num, 'squared is', user_num * user_num)
print('And', user_num, 'cubed is', user_num * user_num * user_num, '!!')
user_num2 = int(input('Enter another integer:\n'))
print(user_num2)
print(user_num, '+', user_num2, 'is', user_num + user_num2)
print(user_num, '*', user_num2, 'is', user_num * user_num2)

报错信息如下:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    user_num2 = input('Enter another integer:\n')
EOFError: EOF when reading a line

问题成因

  • 根本原因:代码执行到第5行调用input()读取第二行输入时,系统输入流已经读取完毕,无剩余内容可读,因此抛出EOFError。
  • 平台特定成因:Zybooks的自动评测系统使用预设的固定测试输入,不会像本地IDE一样等待用户手动输入。如果测试用例仅配置了1行输入,或是你误解了作业输入要求(比如要求两个整数在同一行输入而非分两行输入),就会触发该错误。
  • 手动运行场景成因:如果是手动点击运行,你没有在平台编码区的输入面板中提前填写完整的两行输入内容,仅提供了第一行输入,也会导致第二次读取时无内容可用。

可行解决方案

  • 核对作业输入规则:首先确认作业要求的输入格式,若要求两个整数在同一行空格分隔输入,可将代码修改为一次性读取拆分的形式:
# 适配同一行输入两个整数的需求
user_num, user_num2 = map(int, input('Enter two integers:\n').split())
# 后续逻辑保持不变
print(user_num)
print(user_num, 'squared is', user_num * user_num)
print('And', user_num, 'cubed is', user_num * user_num * user_num, '!!')
print(user_num2)
print(user_num, '+', user_num2, 'is', user_num + user_num2)
print(user_num, '*', user_num2, 'is', user_num * user_num2)
  • 完善平台输入配置:如果确认要求分两次输入,手动运行时先在平台输入框中填写两行内容,第一行为第一个整数,第二行为第二个整数,再点击运行;如果是自动评测报错,联系课程工作人员确认测试用例是否配置了完整的两行输入。
  • 添加异常兼容逻辑:若允许调整代码做兼容,可通过异常捕获避免程序直接崩溃:
try:
    user_num = int(input('Enter integer:\n'))
    print(user_num)
    print(user_num, 'squared is', user_num * user_num)
    print('And', user_num, 'cubed is', user_num * user_num * user_num, '!!')
    user_num2 = int(input('Enter another integer:\n'))
    print(user_num2)
    print(user_num, '+', user_num2, 'is', user_num + user_num2)
    print(user_num, '*', user_num2, 'is', user_num * user_num2)
except EOFError:
    print("输入不完整,请提供两个符合要求的整数输入")
  • 核对提示文本格式:部分Zybooks评测系统会严格匹配输出的提示内容,确认input中的提示文本、换行符是否和作业要求完全一致,避免因提示不匹配导致系统未正确传入第二行输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:21:02