Spyder 在每次调用 input()
函数之间在控制台输出中插入一个空行,但我不希望这样(即我想要 input()
提示位于控制台中的连续行而不是由空行分隔)。有没有办法做到这一点?我尝试使用 input("foo", end="")
认为它可能像 print()
函数一样工作,但事实并非如此......
代码:
fname = input("Please enter your first name: ")
lname = input("Please enter your last name: ")
print("Pleased to meet you, " + str(fname) + " " + str(lname) + "!")
输出:
Please enter your first name: Jane
Please enter your last name: Doe
Pleased to meet you, Jane Doe!
期望的输出:
Please enter your first name: Jane
Please enter your last name: Doe
Pleased to meet you, Jane Doe!
编辑:
正如其他人在评论部分指出的那样,这个问题是不可重现的,即使对我来说也是如此,除非通过在 Spyder IDE 中使用 IPython 接口(interface)。如果有人在 Spyder 之外运行 IPython,请运行上面的代码并让我知道是否会产生相同的输出。我可以通过 Spyder 的 IPython 接口(interface)重现不需要的输出,但不能通过终端 session 重现,因此这是 IPython 或 Spyder 特有的输出。
最佳答案
(这里是 Spyder 开发人员)这看起来像是我们 IPython 控制台中的一个小错误。请在此报告:
https://github.com/jupyter/qtconsole
注意:此控制台不仅仅是在 Spyder 中嵌入终端 IPython session (这就是为什么与其进行比较根本没有意义)。
相反,它是大多数终端行为的重新实现,但使用图形工具包(称为 Qt)和 Jupyter 内核/前端架构。
关于python - 如何防止 Spyder 在获取用户输入后插入新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44667227/