多个input()语句跳过行

时间:2016-07-15 15:54:57

标签: python python-3.x

我正在使用python 3.5.1,我遇到了一些脚本问题。当我连续有多个input()行时,ipython窗口将跳过它们之间的行。这是我的代码:

def DMScalc(D, M, S):
    if D < 0.:
        DD = D + M*(-1)/60 + S*(-1)/3600
    else:
        DD = D + M/60 + S/3600
    return DD

print("\nConvert Degrees-Minutes-Seconds to Decimal Degrees")
D = float(input("Degrees: "))
M = float(input("Minutes: "))
S = float(input("Seconds: "))
print('Decimal Degrees:', end=' ')
print(DMScalc(D, M, S))

ipython窗口显示以下内容:

Convert Degrees-Minutes-Seconds to Decimal Degrees

Degrees: 33

Minutes: 29

Seconds: 38
Decimal Degrees: 33.49388888888889

我想删除Degrees,Minutes和Seconds上面的跳过的行,所以最终结果如下:

Convert Degrees-Minutes-Seconds to Decimal Degrees
Degrees: 33
Minutes: 29
Seconds: 38
Decimal Degrees: 33.49388888888889

我检查了input()的文档,它只讨论了尾随换行符,我认为这不是问题所在。

2 个答案:

答案 0 :(得分:0)

单独使用input()功能,您不能。

尝试使用Curses库,以便您可以更好地控制终端行为,因为input()将始终为您提供新行。

答案 1 :(得分:0)

Spyder开发人员Carlos Cordoba说这是其IPython控制台中的错误,请参见此处:

How can I prevent Python from inserting a new line after taking user input?

您可以检查其Github存储库,以查看其是否已修复。

如果您有好奇心,请在这里查看问题页面:https://github.com/jupyter/qtconsole/issues/262