输入后如何将print()输出到上一行

时间:2018-08-27 13:16:59

标签: python python-3.x input printing

for i in range(1, 10):
    print('temp {}: '.format(i), end = '')
    temp = float(input(''))
    print(' Celsius = {} Fahrenheit'.format(9 / 5 * temp + 32))

输出为:

temp 1: 0
Celsius = 32 Fahrenheit
temp 2: 5
Celsius = 41 Fahrenheit

我要在上一行打印'Celsius = ...'。

我要输出的是:

temp 1: 0 Celsius = 32 Fahrenheit
temp 2: 5 Celsius = 41 Fahrenheit

3 个答案:

答案 0 :(得分:0)

使用input()需要您按Enter,这将添加新行。 首先输入温度,然后再打印整个x C = y F行。

答案 1 :(得分:0)

我相信您可以使用python 2.x:

print('temp {}: '.format(i), end = ''),

第一次打印后,,可以完成工作,但是如果您使用的是python3。我建议您看一下:

Print new output on same line

答案 2 :(得分:0)

我发现了!!!在帖子@nik-k中使用Possible to get user input...答案:

我在最后一行之前添加了print('\033[{}C\033[1A'.format(6 + len(str(temp))), end = '')'\033[{}(6转到上一行,而len(...)使光标向前移动)C\033[1A'

for i in range(1, 10):
    print('temp {}: '.format(i), end = '')
    temp = float(input(''))
    print('\033[{}C\033[1A'.format(6 + len(str(temp))), end = '')
    print(' Celsius = {} Fahrenheit'.format(9 / 5 * temp + 32))