Как сделать функцию которая будет выводить текст по 1 символу на python?
Как сделать такую функцию которая будет выводить текст к примеру "Hello World", по 1 символу в такое-то кол-во времени к примеру за time=0.6 ms
Предоставляю код:
# create function print text linear
import time
def print_text(txt,sleeping=0.6):
for text in txt:
print(txt,end="",flush=True)
time.sleep(sleeping)
print("")
print_text('Hello')
Я думаю что функция не правильно была реализована. Как исправить?
Ответы (2 шт):
У Вас в цикле печатает не ту переменную - txt вместо text. То есть, каждый раз Вы печатаете исходную строку, а не отдельный символ.
Чтобы не запутаться дайте другое название переменной. Например, symbol
:
import time
def print_text(text, sleeping=0.6):
for symbol in text:
print(symbol, end="", flush=True)
time.sleep(sleeping)
print_text('Hello World')
Также, по идее, в цикле имеется лишний print
пустой строки. С ним каждый символ будет печататься на своей строке.
Если вдруг time
- это не промежуток времени между печатью каждой буквы, а время, за которое нужно напечатать всю строку, то нужно просто разделить это время на длину строки:
import time
def print_text(text,sleeping=0.6):
delta = sleeping / len(text)
for letter in text:
print(letter, end="", flush=True)
time.sleep(delta)
print()
print_text('Hello')