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"!")\''
为什么input()
用这种奇怪的方式处理领导感叹号?
有趣的是,如果我从命令行运行相同的python,则所有工作正常。
但是,在Spyder IDE中,它让我很傻。
python大神给出的解决方案
(Spyder开发人员在这里)这是一个错误。我们在Python(而非IPython)控制台中使用!
来运行一些与有效Python语法不对应的特殊命令(例如,!ls
列出当前工作目录中的文件)。
有一个issue可以打开。我们将尝试在下一个版本(2.3.3)中对其进行修复。