为什么打印功能无法在正确的时间运行?

moh*_*isi 0 python printing

这是我的代码:

import time as t

print('hello', end=' ')
t.sleep(1)
print('hello', end=' ')
t.sleep(1)
print('hello', end=' ')
t.sleep(1)
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*mar 5

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

您可以使用该flush=True选项强制其立即刷新。

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)
Run Code Online (Sandbox Code Playgroud)