Я новичок и работаю над очень базовым набором навыков.
Я делаю простую текстовую игру в командной строке для окон, и у меня есть функция, которая позволяет пользователям читать самые последние утверждения,и пропустить его, вызвав 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)
Поскольку вывод на консоль буферизирован.