我正在尝试在终端屏幕上逐个字母地打印一个字符串(每次打印之间有一个暂停),并且我希望它全部位于同一行。
我目前有这个:
sleepMode = "SLEEP MODE..."
activ = "ACTIVATE!"
for l in sleepMode:
print(l, end=" ")
sleep(0.1)
sleep(2)
for l in activ:
print(l, end=" ")
sleep(0.1)
出于某种原因,它不会在循环中的打印之间休眠,而是似乎要等到循环完成后再一次打印出所有内容。
我希望它看起来像是在屏幕上实时“输入”的。
有什么建议吗?
谢谢! 扎克
最佳答案
尝试冲洗它
for l in activ:
print(l, end=" ")
sys.__stdout__.flush()
sleep(0.1)
不知道它是否会起作用,因为我假设您正在使用 py3x 并且它在我的系统中无论有没有刷新都可以正常工作
flush 只是强制输出缓冲区写入屏幕......通常它会等到有一些空闲时间将其转储到屏幕。但 sleep 锁定了它。因此,通过刷新它,您现在将内容强制显示到屏幕上,而不是让内部调度程序执行此操作……至少我是这么理解的。我可能错过了一些细微差别
关于python - 在 Python 3.2 中,如何使用 while 循环打印字符串,其中字母之间有间隔(在同一行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433850/