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

Python代码在ZyBooks报EOFError,PyCharm/VS Code运行正常求排查

解决Python input()在ZyBooks平台的EOFError问题

可能原因

  • ZyBooks的输入机制和本地IDE不同:PyCharm/VS Code是交互式运行,会等待用户逐行输入;而ZyBooks要求提前预设所有输入内容,以批量方式读取。如果预设的输入行数少于代码中input()的调用次数,代码执行到input()时会读到文件结束符(EOF),触发EOFError。
  • 输入内容不完整:代码中有3次input()调用,但在ZyBooks中没有提供足够的输入行(比如只给了2行),导致第三次调用input()时无内容可读。

解决方法

  • 补全输入内容:在ZyBooks的输入框中,按照代码的input()顺序,提供3行输入(第一行输第一个单词,第二行输第二个单词,第三行输数字),确保输入行数和input()调用次数完全匹配。
  • 适配批量输入方式:改用批量读取输入的写法,避免依赖交互式输入,示例代码如下:
import sys

# 读取所有输入并按行拆分,自动过滤空行
input_lines = [line.strip() for line in sys.stdin.read().splitlines() if line.strip()]

# 按顺序赋值给变量
usr_word1 = input_lines[0]
usr_word2 = input_lines[1]
usr_nmr = input_lines[2]

print(f'You entered {usr_word1} {usr_word2} {usr_nmr}')
first_pswd = f'{usr_word1}_{usr_word2}'
second_pswd = f'{usr_nmr}{usr_word1}{usr_nmr}'
print(first_pswd)
print(second_pswd)

这种写法会一次性读取所有输入内容,再分配给变量,适配ZyBooks的批量输入机制,避免EOFError。

  • 核对input()调用次数:确保代码中input()的数量和你在ZyBooks中提供的输入行数一致,每一个input()对应一行输入内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:15:51