python - input() 在 Spyder IDE 中带有感叹号 (!)

标签 python python-3.x input 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"!")\''

为什么 input() 以这种奇怪的方式处理前导感叹号?

有趣的是,如果我从命令行运行相同的 python,一切正常。 但是,在 Spyder IDE 中,它把我当傻瓜。

最佳答案

(这里是 Spyder 开发人员)这是一个错误。我们在 Python(不是 IPython)控制台中使用 ! 来运行一些不符合有效 Python 语法的特殊命令(例如 !ls列出当前工作目录中的文件)。

有一个issue为它打开。我们将尝试在下一个版本 (2.3.3) 中修复它。

关于python - input() 在 Spyder IDE 中带有感叹号 (!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27247786/

相关文章:

python - Django:如何构建一个endswith模板过滤器

javascript - 适合 float 的 JavaScript 掩码

python - 查找由已知字符串分隔的表达式

python - 单行四倍列表

Python 警告 "' str' is not callable"when calling a function

python - key 错误 : <class 'pandas._libs.tslibs.timestamps.Timestamp' > when saving dataframe to excel

Python 脚本进入不正确的 if 语句

javascript - 仅数字输入键码验证器也接受正斜杠

python - pickle 过程是确定性的吗?

mysql - Optionmenu 中的 Variable.get() 未返回查询 mySQL 所需的内容