【问题标题】:Interpolate sleep() and print() in the same line inside a for loop using python 3 [duplicate]使用 python 3 在 for 循环内的同一行中插入 sleep() 和 print() [重复]
【发布时间】:2017-01-02 23:26:39
【问题描述】:

我试图使用 python 3 在同一行中打印循环的结果,在阅读 Python: for loop - print on the same line 之后,我设法做到了。

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 秒,打印第二个字符等。

【问题讨论】:

  • 另见另一个重复的here

标签: python for-loop printing sleep


【解决方案1】:

stdout 的输出是行缓冲的,这意味着在打印换行之前不会刷新缓冲区。

每次打印时显式刷新缓冲区:

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

演示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 2019-01-21
    • 2021-11-23
    • 2018-03-04
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    相关资源
    最近更新 更多