2016-08-26 34 views
5

我试图用python 3在同一行中打印一个循环的结果,在读取后Python: for loop - print on the same line我设法做到了。使用python在for循环中的同一行内插入sleep()和print()3

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

现在的问题是,当我在打印前插入

time.sleep(2) 

。 我想打印的第一个字符,等待两秒钟,则第二,等待两秒等

这里的代码:

for x in range(1,10): 
    time.sleep(2) 
    print(x, end="") 

随着我们等待20秒(= 10 * 2),然后才显示数字。这不是我们所期望的。

我应该怎么做具有上述预期的行为,即等待2秒,打印第一个字符,等待更2秒,打印第二字符等

+0

还看到另一个重复[这里](http://stackoverflow.com/questions/38411532/怎么办-I-打印从-A-中的python-2-7-脚本调用从 - 庆典中之pycharm/38411633)。 – TigerhawkT3

回答

5

输出到stdout是行缓冲,这意味着缓冲直到打印换行符才会被刷新。

明确每次打印时刷新缓冲区:

print(x, end="", flush=True) 

演示:

demonstration animation showing slowly-added digits at 2 second intervals

+0

我认为重要的是要补充True的第一个字母可能真的用大写字母来书写。 ;-) –