Python 3.x print()函数仅在python 3中完成for循环后执行
我想使用for循环在同一行中显示序列号,这就是我所做的:Python 3.x print()函数仅在python 3中完成for循环后执行,python-3.x,loops,printing,Python 3.x,Loops,Printing,我想使用for循环在同一行中显示序列号,这就是我所做的: for i in range(10): sleep(1) print(i, end=" ") 这是为了在for循环的每次迭代中一个接一个地打印数字(0、1、2、…、10),而不是程序等待循环完成,然后一次打印所有数字 我不明白为什么会发生这种情况,有人知道这种行为的原因吗?谢谢你的标准输出是行缓冲的;这意味着在遇到换行符之前它不会显示文本。您需要显式刷新缓冲区: for i in range(10): sleep
for i in range(10):
sleep(1)
print(i, end=" ")
这是为了在for循环的每次迭代中一个接一个地打印数字(0、1、2、…、10),而不是程序等待循环完成,然后一次打印所有数字
我不明白为什么会发生这种情况,有人知道这种行为的原因吗?谢谢你的
标准输出是行缓冲的;这意味着在遇到换行符之前它不会显示文本。您需要显式刷新缓冲区:
for i in range(10):
sleep(1)
print(i, end=" ", flush=True)
从:
是否缓冲输出通常由文件决定,但如果flush关键字参数为true,则强制刷新流
和来自:
交互时,标准流是行缓冲的
谢谢,这很有效