当前位置: 首页 > 面试题库 >

为什么在我仅按Enter键时input()会给出错误?

姬英耀
2023-03-14
问题内容

我有以下python代码:

print 'This is a simple game.'
input('Press enter to continue . . .')
print 'Choose an option:'

...

但是当我按下Enter按钮时,出现以下错误:

Traceback (most recent call last):
  File "E:/4.Python/temp.py", line 2, in <module>
    input('Press enter to continue . . .')
  File "<string>", line 0

   ^
SyntaxError: unexpected EOF while parsing

PS我在Windows 7上使用python IDLE版本2.6。


问题答案:

对于Python
2,您raw_input不需要input。前者会读一行。后者将读取一行并尝试执行它,如果您不希望代码被输入数据的人破坏,则不建议这样做。

例如,他们可以按照以下示例执行调用任意函数的操作:

def sety99():
    global y
    y = 99

y = 0
input ("Enter something: ")
print y

如果您在Python
2下运行该代码并输入sety99(),则99即使您的代码(在其正常执行流中)没有刻意将其设置y为除零以外的任何值(在函数中也是如此,但该函数永远不会),输出仍将由您的代码明确调用)。这样做的原因是该input(prompt)呼叫等同于eval(raw_input(prompt))

详细信息请参见此处。

请记住,Python
3可以解决此问题。此处的输入函数的行为符合您的预期。



 类似资料:
  • core.js:1671错误类型错误:generatorOrNext不是SafeSubscriber.SchedulerFn[as_next](core.js:3565)在SafeSubscriber.push../node_modules/rxjs/_esm5/internal/subscriber.js.safeSubscriber.__tryRunsub(subscriber.js:195)

  • 问题内容: 我有一个使用串口(9600,无奇偶校验,8位,无硬件流)的简单PC到板连接,我在PC中打开了简单的终端*(带有teraterm),然后在teraterm和板中输入密钥,我只是这样做 我看到了作用域中被按下的字符,但是只有在第三次按下“ enter”之后,我才在板子控制台中看到这些字符(就好像它们存储在Linux驱动程序中的某些FIFO中,仅输入会触发) 为什么只有按Enter键才能在L

  • 我正在使用python 2.7。win8上的9。当我尝试使用matplotlib绘图时,出现以下错误: 从pylab导入* 绘图([1,2,3,4]) [matplotlib.lines.Line2D对象位于0x0392A9D0] 我尝试了测试代码“python simple_plot.py--verbose help”,出现了以下警告: $HOME=C:\Users\XX matplotlib数

  • 为什么会引发主线程上的网络异常?its在异步任务上 } 编辑: 完整代码: logcat:

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码: