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)
如果有人能解决为什么会发生这种情况以及如何解决它,我将非常感激。
先感谢您。
您可以使用flush参数 forprint在每次调用后始终刷新输出缓冲区:
def typingeffect(string):
for i in string:
print(i, end="", flush=True)
sleep(0.2)
Run Code Online (Sandbox Code Playgroud)
否则,标准输出的刷新通常只发生在换行符上。