我只是搞乱了,我有以下代码:
from time import sleep
while True:
print('a', end=' ')
sleep(0.05)
出于某种原因,在按按Ctl + C之前,没有打印任何内容。然后它打印出应该不断打印的所有内容。但是,如果我删除end
参数:
from time import sleep
while True:
print('a')
sleep(0.05)
完美无缺。 “a”每0.05秒打印一次。
另外,当我遗漏sleep
时,我的第一个代码没有问题。
所以:为什么end
参数使sleep
隐藏输出?
答案 0 :(得分:1)
当Python(和其他)程序打印到屏幕时,它首先发送到打印缓冲区。当Python找到它时,它会将此缓冲区刷新到屏幕上。我不知道此行为的内部详细信息,但您可以将flush
函数的print
关键字设置为True
以强制立即执行刷新。尝试:
from time import sleep
while True:
print('a', end=' ', flush=True)
sleep(0.05)