【发布时间】:2016-02-05 18:23:19
【问题描述】:
所以这是一些应该打印文本的代码,类似于 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)
由于某种原因,如果我在 print(x, end="") 之前添加一个打印语句,程序可以正常工作。
for x in lorem:
print()
print(x, end="")
time.sleep(0.03)
有人知道是什么原因造成的吗?也许如何解决它?
【问题讨论】:
-
看起来您的终端在打印换行符之前不会刷新输入(这是第二个程序中的 print() 所做的)。让上面的程序运行一段时间,你最终应该会得到一个输出。
-
当它不起作用时会发生什么?
-
在
print(x, end="")之后添加sys.stdout.flush() -
您可以无缓冲地运行 Python。搜索命令行设置。