Как напечатать () вывод на предыдущую строку после ввода

1
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
  • 1
    Не имеет отношения к вашему вопросу, но правильное написание "Фаренгейт"
  • 0
    Проблема здесь в том, когда вы используете input () в py3 или raw_input () в py2. Он читает подсказку и печатает подсказку. И переезжает на новую линию. Если операторы print использовались последовательно, используя «,» в py2 и end = '' в py3. Эти операторы печати будут напечатаны в одной строке. Но input () или raw_input () выводит подсказку и затем переходит на следующую строку в STDOUT.
Показать ещё 1 комментарий
Теги:
python-3.x
printing
input

3 ответа

0

Я нашел!!! Использование ответа @nik-k в сообщении Возможно получить пользовательский ввод...:

Я добавил 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))
0

Я верю в python 2.x, вы можете использовать:

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

Это , после того , как первая печать выполнит эту работу, но если вы используете python 3. Я предлагаю вам увидеть следующее:

Печать нового выпуска на той же строке

  • 0
    Но вы не читаете ввод пользователя здесь.
  • 0
    Не нужно ставить запятую после after (), и эта строка с "..., end = ''" работает правильно. Проблема во второй строке, где input () нужно, чтобы вы нажали клавишу ввода, что добавит новую строку, а мне нужен способ, чтобы переместить курсор на предыдущую строку и затем выполнить печать.
0

Используя input() вы должны нажать enter, чтобы добавить новую строку. Я бы обошел это, предварительно введя температуру и только затем распечатав всю строку x C = y F

  • 0
    Я знаю это, но есть ли способ переместить курсор на предыдущую строку и затем распечатать?
  • 0
    Это невозможно. Единственный способ, о котором я могу думать, - это очистить консоль и снова написать все, что может дать представление о «без вставленной новой строки», но, конечно, это не учитывает другие выходные данные (например, имя dir и имя сценария, когда он был запущен) и обычно довольно ненадежен.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню