Python 3 上输入提示前的空行

Empty line before input prompt on Python 3

当我运行代码

print("Hi")
input("Hello: ")

Python Tutor (Python 3.6) 上,我得到了预期的输出(忽略我的输入)

Hi
Hello:

但是,当我 运行 在我的计算机上使用 Spyder 3.3.1 和 Python 3.7 时,我得到了输出

Hi

Hello: 

我想了解为什么Spyder中会出现这个空行,以及如何去掉它。

OP 的问题分为两部分:

  1. "我想了解为什么这个空行会出现在 Spyder 中,..."
  2. “……以及如何摆脱它。”

Martijn Pieters 的 , where he points out that this is a known issue,只解决了第一部分。这个答案解决了第二个问题。

执行以下操作以删除 print 的默认换行符:

print("Hi", end="")
input("Hello: ")

哪个 return:

Hi
Hello:

注意:这有点hack,即它不会删除input 之前的换行符。因此,如果你在 Spyder 以外的任何地方 运行 你的脚本,上面的代码将 return:

HiHello:

由于这是 Spyder 特有的一个小怪癖,容忍它并继续前进可能更有意义。

你没有做错任何事。斯派德是。这是一个confirmed bug, issue #5242.

开发人员似乎没有时间修复它,它自 2017 年 9 月以来一直存在:

Thanks for reporting. Although annoying, this is a simple bug and we don't have time to fix it right now. Sorry.