Возможно ли использование time.sleep внутри print ()? - PullRequest
0 голосов
/ 25 марта 2020

Я хотел сделать как. ... ... показать, что программа "думает".

Итак, у меня возникла идея:

import time

print(".", time.sleep(x), ".", time.sleep(x), ".")

Но, конечно, это не сработало.

Выполнение:

import time

time.sleep(0.8)
print(".")
time.sleep(0.8)
print("..")
time.sleep(0.8)
print("...")
time.sleep(0.8)

Помещает все точки друг под друга.

У кого-нибудь есть идеи, как это может работать?

Спасибо вам за авансовый.

1 Ответ

1 голос
/ 25 марта 2020

К сожалению, ваш подход не сработает. Разделенные запятыми значения в операторе print не допускают новых фрагментов логики; они просто говорят python печатать строки, разделенные пробелом. Для этого вам нужно немного поэкспериментировать с параметрами оператора print.

Код:

import time

i = 1
while i < 4:
    dots = '.'*i
    print("\r{}".format(dots), flush=True, end='')
    time.sleep(1)
    i += 1

Вам необязательно нужно время l oop, но чтобы понять, что происходит в заявлении печати. Вы должны включить в начало строки "\ r", то есть возврат каретки. Это говорит Python после печати, чтобы вернуть курсор в начало строки, в следующий раз, когда он должен будет печатать.

В параметрах для функции печати используйте "end = ''", который говорит python заканчиваться пустой строкой. По умолчанию оператор print заканчивается символом новой строки, что является нежелательным поведением.

Наконец, "flush = True" говорит Python удалить все, что нужно напечатать. Это необходимо, потому что вы использовали возврат каретки к go к началу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...