- 此问题在此处已有答案**:
Why doesn't print output show up immediately in the terminal when there is no newline at the end?(1个答案)
Why print in Python doesn't pause when using sleep in a loop?(2个答案)
13小时前关门了。
这是一些用来打印文本的代码,类似于口袋妖怪,纯粹是为了好玩。
问题是当程序在终端中运行时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="")
之前放一个print语句,程序就能正常工作。
for x in lorem:
print()
print(x, end="")
time.sleep(0.03)
有人知道是什么原因吗?或者怎么解决?
1条答案
按热度按时间hpxqektj1#
之所以会发生这种情况,是因为Python使用缓冲区来写入Stdout。为了获得所需的效果,必须在代码末尾放置
sys.stdout.flush()
......这将以每0.03秒1个字符的速率单独打印出每个字符