Как сделать функцию которая будет выводить текст по 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 шт):

Автор решения: mrgervant

У Вас в цикле печатает не ту переменную - 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 пустой строки. С ним каждый символ будет печататься на своей строке.

→ Ссылка
Автор решения: CrazyElf

Если вдруг 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')
→ Ссылка