在Spyder IDE中,input()与感叹号(!)很奇怪

Nic*_*kin 2 python input python-3.x spyder

input()函数使用WinPython 3.3.5在Spyder IDE中的某些输入上返回奇怪的值:

>>>input('say:')
say:hello
hello
>>>input('say:')
say:hello!
hello!
>>>input('say:')
say:!
'evalsc(r"!")'
>>>input('say:')
say:!123
'evalsc(r"!123")'
>>>s = input('say:')
say:!
>>>type(s)
<class 'str'>
>>>repr(s)
'\'evalsc(r"!")\''
Run Code Online (Sandbox Code Playgroud)

为什么input()以这种奇怪的方式处理领先的惊叹号?

有趣的是,如果我从命令行运行相同的python,一切正常.但是,在Spyder IDE中,它让我变得愚蠢.

Car*_*oba 5

(Spyder dev here)这是一个错误.我们!在Python(而不是 IPython)控制台中使用一些特殊命令来运行与有效Python语法不对应的命令(例如!ls,列出当前工作目录中的文件).

有一个问题是开放的.我们将在下一个版本(2.3.3)中尝试修复它.