【发布时间】:2017-11-23 20:01:06
【问题描述】:
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!
编辑:
正如其他人在 cmets 部分中指出的那样,这个问题是不可重现的,即使对我来说也是如此,除非通过在 Spyder IDE 中使用 IPython 接口。如果有人在 Spyder 之外运行 IPython,请运行上面的代码并让我知道这是否会产生相同的输出。我可以通过 Spyder 的 IPython 接口而不是通过终端会话重现不需要的输出,所以这是 IPython 或 Spyder 特有的。
【问题讨论】:
-
您是从 Python shell 运行代码吗?
-
@paanvaannd 您的问题无法重现...
-
@ChristianDean 我在 Python IDE 的 Spyder 中运行它。界面中有一个 IPython 控制台,从那里运行代码会产生我描述的输出。也许这只是 IPython 如何处理
input()的问题? -
@Coldspeed 我只是在上面输入 Christian 的回复,但您可能也有兴趣看到它,因为这可能是它在您的环境中无法重现的原因。也许这是 IPython 的事情。如果是这样,这不是问题,我将结束这个问题。不过,感谢您的帮助!
标签: python input ipython newline spyder