为什么打印功能在结束参数的情况下停止使用sleep?

时间:2016-10-20 21:24:05

标签: python output

我只是搞乱了,我有以下代码:

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隐藏输出?

1 个答案:

答案 0 :(得分:1)

当Python(和其他)程序打印到屏幕时,它首先发送到打印缓冲区。当Python找到它时,它会将此缓冲区刷新到屏幕上。我不知道此行为的内部详细信息,但您可以将flush函数的print关键字设置为True以强制立即执行刷新。尝试:

from time import sleep
while True:
    print('a', end='        ', flush=True)
    sleep(0.05)