raw_input выводит подсказку после запроса ввода - PullRequest
0 голосов
/ 26 сентября 2018

Когда я использую raw_input, подсказка отображается только после ввода данных пользователем.Как это:

number = raw_input("Enter a number:")

, но когда я запускаю это, ничего не происходит, я набираю число, оно показывает приглашение:

123
Enter a number:

(123 раньше было пустым, пока янабрал номер и нажал ввод)

Я просто хочу, чтобы подсказка отображалась до ввода пользователя.Если кто-нибудь знает, как это исправить, помогите.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Спасибо за ваше предложение, и я попробовал это, но, к сожалению, это не сработало, но я нашел решение:

Я должен был добавить

sys.stdout.flush()

перед каждымраз у меня было

variable = raw_input("A prompt")

для очистки буфера.

Хотя для первого

raw_input("A prompt")

это не будет работать, если вы, например, что-то уже напечатали, например

variable = raw_input("A prompt")
sys.stdout.flush()

все равно будет иметь ту же проблему, тогда как

print"Welcome,"

variable = raw_input("A prompt")
sys.stdout.flush()

будет работать.

0 голосов
/ 26 сентября 2018

Возможно, вы находитесь в среде, где ваш стандартный вывод буферизован и не будет сбрасываться до тех пор, пока не появится символ новой строки.

Вы можете воспользоваться тем фактом, что стандартная ошибка не буферизована, и перенаправить стандартный вывод ввместо стандартная ошибка:

import sys
sys.stdout = sys.stderr
...