Ton*_*Joe 2 printing loops python-3.x
我想使用for循环在同一行中显示序列号,这就是我所做的:
for i in range(10):
sleep(1)
print(i, end=" ")
Run Code Online (Sandbox Code Playgroud)
这应该在for循环的每次迭代中依次打印数字(0、1、2,...,10),而程序将等待直到循环结束,然后立即打印所有数字。
我不明白为什么会这样,有人知道导致这种行为的原因是什么,谢谢?
您stdout的行被缓冲;这意味着它会在遇到换行符之前不显示文本。您需要显式刷新缓冲区:
for i in range(10):
sleep(1)
print(i, end=" ", flush=True)
Run Code Online (Sandbox Code Playgroud)
输出是否被缓冲通常由file决定,但是如果flush关键字参数为true,则将强制刷新流。
来自sys.stdout:
交互式时,标准流是行缓冲的。
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |