Python 3 - 如何在命令行窗口中创建打字效果

Voi*_*zer 3 python command-line command-prompt python-3.x

所以我遇到了一个小问题。我有这个代码:

def typingeffect(string):
    string = list(string)
    for i in string:
        print(i, end="")
        sleep(0.2)

typingeffect("Hello")
Run Code Online (Sandbox Code Playgroud)

当我通过 Python (3.7) IDLE 运行此代码时,它按预期工作,将一个字符一个接一个地放置,延迟 0.2 秒。但是,当我通过 cmd.exe 运行它时,它只是将其打印为一个字符串。

如果我取出 ,它只能通过命令起作用end="",在这种情况下,它会延迟 0.2 秒打印字母,但每个字符后有一个换行符,不会产生打字效果,而是:

H
e
l
l
o
Run Code Online (Sandbox Code Playgroud)

如果有人能解决为什么会发生这种情况以及如何解决它,我将非常感激。

先感谢您。

blh*_*ing 5

您可以使用flush参数 forprint在每次调用后始终刷新输出缓冲区:

def typingeffect(string):
    for i in string:
        print(i, end="", flush=True)
        sleep(0.2)
Run Code Online (Sandbox Code Playgroud)

否则,标准输出的刷新通常只发生在换行符上。