#python #python-3.x #time #flush #sys
Вопрос:
Вот мой код:
wait = "..."
for char in wait:
sys.stdout.flush()
time.sleep(1)
print(char)
Я пытаюсь довести это до конца:
...
Но вместо этого он выводит:
.
.
.
Я не понимаю, почему sys.stdout.смыв не оказывает никакого эффекта.
Ответ №1:
Если вы введете help(print)
интерпретатор Python, вы получите:
print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
Использование этой информации:
for char in wait:
time.sleep(1)
print(char, end='', flush=True)
Ответ №2:
std.out.flush()
просто записывает то, что находится в буфере, на экран
По умолчанию print()
добавляет a n
в конец, чтобы написать новую строку. Вы можете отключить его, выполнив print(s, end='')
Ответ №3:
Используя параметр end=''
в print
, вы можете достичь желаемых результатов:
Попробуйте это:
import sys
import time
wait = "..."
for char in wait:
sys.stdout.flush()
time.sleep(1)
print(char, end='')
Вы можете прочитать больше об этом end
параметре здесь
Ответ №4:
Попробовать это:
import sys
import time
wait = "..."
for char in wait:
time.sleep(1)
print(char, end="", file=sys.stdout, flush=True)