печатать каждую вещь медленно (имитировать печатание) - PullRequest
0 голосов
/ 08 ноября 2019

[ медленная печать (имитация ввода)

Я получил ответ по приведенной выше ссылке, но он работает только тогда, когда вы при вводе строки указываете как параметр function.

Я хочу, чтобы код печатался медленно каждый раз, когда я использую print().

возможно ли это?

Ответы [ 3 ]

2 голосов
/ 08 ноября 2019

Да, вы можете сделать это так, однако, я думаю, что это не очень хорошая идея:

import time
def dprint(string):
   for letter in string:
        __builtins__.print(letter,end = '', flush=True)
        time.sleep(.1)
   __builtins__.print("")

print = dprint

print("something")
1 голос
/ 08 ноября 2019

Да, вы можете сделать это, используя версию stdout, как показано ниже.

import sys, time

def print(s):
    for letter in s:
        sys.stdout.write(letter)
        time.sleep(.1)

print("Foo")
0 голосов
/ 08 ноября 2019

Изменение поведения по умолчанию print() не рекомендуется и было введено только для упрощения переноса программ на Python 2. Кроме того перегружать функцию печати без специального параметра сделает функциональность по умолчанию print() тоо.

Создание другой функции с добавлением задержки к отпечаткам. Также помните, что вы не можете использовать print(), потому что он добавляет новую строку. Вам нужно будет sys.stdout.write()

Итак, базовая функция будет выглядеть так:

def typrint(x):
    for i in len(x):
        sys.stdout.write(x[i])
        sleep(0.05)
    sys.stdout.write(“\n”)

Проверьте эту статью , чтобы понять, почему Python обновил print() дофункция

...