所以这是一些应该打印文本的代码,类似于 Pokemon 的工作方式。纯粹是为了好玩。
问题是print(x, end="")程序在终端中运行时不起作用,但在使用 IDLE 运行时运行良好。
import time
lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
for x in lorem:
print(x, end="")
time.sleep(0.03)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果我在print(x, end="").
for x in lorem:
print()
print(x, end="")
time.sleep(0.03)
Run Code Online (Sandbox Code Playgroud)
有谁知道是什么原因造成的?也许如何解决它?
小智 12
发生这种情况是因为 python 使用缓冲区写入标准输出。为了获得预期的效果,您必须sys.stdout.flush()在代码的末尾放置...
import time, sys
lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
for x in lorem:
print(x, end="")
time.sleep(0.03)
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)
这将以每 0.03 秒 1 个字符的速率单独打印出每个字符