Python 如何在输入后将()输出打印到上一行

Python 如何在输入后将()输出打印到上一行,python,python-3.x,input,printing,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)) 我想在前一行中打印'Celsius=…' 我想成为: temp 1: 0 Celsius = 32 Fahrenheit temp 2: 5 Celsius = 41 F

输出为:

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

我想在前一行中打印'Celsius=…'

我想成为:

temp 1: 0
Celsius = 32 Fahrenheit
temp 2: 5
Celsius = 41 Fahrenheit
使用
input()
需要按enter键,这将添加新行。
我会先输入温度,然后打印整个
xc=yf
行来解决这个问题。

我相信Python2.x可以使用:

temp 1: 0 Celsius = 32 Fahrenheit
temp 2: 5 Celsius = 41 Fahrenheit
第一次打印后的
将完成这项工作,但如果您使用的是python 3。我建议你看看这个:

我找到了!!!使用post中的答案:

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

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

与您的问题无关,但正确的拼写是“华氏度”。这里的问题是当您在py3中使用input()或py2中使用raw_input()时。它读取promp并打印提示符。然后移到新行。如果连续使用print语句,请使用“,”在py2中,end=''在py3中。这些打印语句将打印在同一行中。但是input()或raw_input()打印提示,然后移到STDOUT中的下一行。发现了与您类似的问题。根据我们使用raw_input()或input()时的结果在/through print语句中,我们不能将它们打印在同一行中。除非我们使用Curses模块。我知道这一点,但有没有办法将光标移到前一行,然后打印?这是不可能的。我唯一能想到的方法是清除控制台并再次写入所有内容,这可能会让人感觉到“没有插入新行”,但这当然不考虑其他输出(例如运行时的目录名和脚本名),而且通常非常不可靠。可以将终端切换到无回显模式(如密码输入)和原始模式(逐字符输入,而不是逐行),但您的程序将负责所有的行编辑。不需要在print()之后加逗号,这一行带有“…,end=''”可以正常工作。问题是在第二行,input()需要您按enter键,这将添加新行,我需要一种方法将光标移到前一行,然后打印。
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))