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

Python入门开发者求助:raw_input执行时触发EOFError问题排查

问题分析与解决

作为Python入门开发者,你遇到的问题其实包含两个部分,咱们一步步拆解:

1. 先解决眼前的 EOFError: EOF when reading a line

这个错误的意思是:程序等着读取你输入的内容,但它啥也没读到就碰到了"输入结束"的信号。常见的触发场景有这些:

  • 你在在线代码编辑器里直接运行程序,却没在输入框里填写任何内容;
  • 在终端运行时,你提前按了Ctrl+D(Unix/Linux/macOS)或者Ctrl+Z(Windows)终止了输入;
  • 有些IDE的运行配置没开启输入交互功能,导致程序拿不到输入。

解决方法很直接:运行程序时,在弹出的输入提示里输入一个数字再继续执行。

2. 隐藏的类型错误(你还没触发但一定会遇到)

你的代码还有个潜在bug:raw_input()返回的是字符串类型,但你直接用它和整数9做取模运算number % 9,等你解决了EOF问题后,会触发TypeError: not all arguments converted during string formatting——因为Python里字符串的%是格式化符号,和整数的取模逻辑完全不一样。

所以必须把输入的字符串转换成整数,用int()函数处理。

修正后的完整代码

# 把输入的字符串转为整数类型
number = int(raw_input("Enter a number."))

def function(num):
    if num % 9 == 0:
        print(9)
    else:
        print(num % 9)

# 别忘了调用函数!你之前只定义了函数但没执行它
function(number)

额外提两个小细节:

  • 我把函数参数名改成了num,避免和全局变量number重名,虽然不是硬性要求,但代码可读性会更好;
  • 你之前的代码只定义了函数却没有调用它,哪怕输入正常,程序也不会有任何输出哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:30:26