关于python:为什么print函数没有在正确的时间运行?

Why is the print function not running at the right time?

本问题已经有最佳答案,请猛点这里访问。

这是我的代码:

1
2
3
4
5
6
7
8
import time as t

print('hello', end=' ')
t.sleep(1)
print('hello', end=' ')
t.sleep(1)
print('hello', end=' ')
t.sleep(1)

我的问题是所有的打印命令都是在sleep命令之后执行的,这不是我想要的输出。


这是因为输出缓冲。在打印换行符之前,不会刷新缓冲区。由于使用了end=' ',所以每个单词后面都没有换行符,所以缓冲区在脚本结束之前不会刷新。

您可以使用flush=True选项强制它立即冲洗。

1
2
3
4
5
6
7
8
9
import time as t
import sys

print('hello', end=' ', flush=True)
t.sleep(1)
print('hello', end=' ', flush=True)
t.sleep(1)
print('hello', end=' ', flush=True)
t.sleep(1)