Попытка Python 3.7.1 за исключением блока, происходящего в неправильном порядке в командной строке - PullRequest
0 голосов
/ 19 ноября 2018

Я новичок и работаю над очень базовым набором навыков.

Я делаю простую текстовую игру в командной строке для окон, и у меня есть функция, которая позволяет пользователям читать самые последние утверждения,и пропустить его, вызвав KeyboardInterrupt, как с помощью Ctrl-C.

from time import sleep
def wait(seconds):
    try:
        sleep(seconds)
    except KeyboardInterrupt:
        pass
    return

проблема возникает, когда я хочу что-то напечатать, а потом не иметь новой строки.В этом случае функция wait () будет выполнена до того, как функция print ()

# functions properly, but has unwanted newline
print("test", end='test\n')
wait(3)
# in windows CMD, wait() executes before print()
print("test", end='test')
wait(3)

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

РЕДАКТИРОВАТЬ: Я продолжал поиск и обнаружил, что проблема была не в попытке, кроме блока, а в sleep (): Ошибка с Print и Sleep in Python копия ответа:

Вы должны использовать:

print (a, end="", flush=True)

Поскольку вывод на консоль буферизирован.

1 Ответ

0 голосов
/ 19 ноября 2018

Я согласен с вашим ответом.Вы должны использовать:

print(a, end="", flush=True)

, потому что консольный вывод буферизирован.

...