2017-09-08 25 views
1

结束后,我想显示使用for循环在同一行一系列的数字来执行,这是我做的:的print()函数只用于循环在Python 3

for i in range(10): 
    sleep(1) 
    print(i, end=" ") 

据说这是为了在for循环的每次迭代中一个接一个地打印数字(0,1,2,...,10),而不是程序等待循环结束,然后一次打印所有数字。

我不明白为什么会发生这种情况,有没有人知道是什么原因导致这种行为,谢谢?

回答

3

您的stdout是行缓冲;这意味着它将不会显示文字,直到遇到换行符。你需要明确刷新缓冲区:

for i in range(10): 
    sleep(1) 
    print(i, end=" ", flush=True) 

print() function documentation

是否缓冲输出,通常是由文件确定,但如果冲洗关键字的说法是真实的,流被强行冲洗。

而且从sys.stdout

互动时,标准的流线缓冲。

+0

谢谢这工作完美 –