Python 打印之间的延迟

Python 打印之间的延迟,python,Python,我想做的是每次打印东西时增加0.5秒的延迟。但我的问题是,它会延迟一段时间,然后一次全部打印出来 import time x = [(0, 1), (2, 3), (4, 5), (6, 7), (8, 7)] for i in x: print(i) time.sleep(0.5) 这应该做什么: (0, 1) wait 0.5 seconds (2, 3) wait 0.5 seconds (4, 5) etc 然而,我的问题是,它不打印第一个并等待0.5秒 然后打印

我想做的是每次打印东西时增加0.5秒的延迟。但我的问题是,它会延迟一段时间,然后一次全部打印出来

import time

x = [(0, 1), (2, 3), (4, 5), (6, 7), (8, 7)]

for i in x:
    print(i)
    time.sleep(0.5)
这应该做什么:

(0, 1)
wait 0.5 seconds
(2, 3)
wait 0.5 seconds
(4, 5)
etc
然而,我的问题是,它不打印第一个并等待0.5秒 然后打印下一张,我的是等了这么久然后一次打印完,
我想知道有什么办法可以解决这个问题。

试着在打印后添加
sys.stdout.flush()
,一些系统缓冲区直到换行。这可能就是你所看到的

尤尼利的回答应该会起作用。在每个打印语句后添加
sys.stdout.flush()

编辑:

值得一提的是,将代码粘贴到我的linux机器上的ipython中,可以得到下面的输出,每行之间有半秒的延迟

(0, 1)
(2, 3)
(4, 5)
(6, 7)
(8, 7)

看起来您使用的是Python3,因此您实际上可以在不使用任何附加语句的情况下执行此操作。只需将
flush=True
添加到打印语句的参数中,即:

print(i, flush=True)

让加载条在Python中工作时遇到了同样的问题,这就解决了这个问题。

这在我的机器Python 2.7.6上运行良好。这就是你现在所做的吗?是的,对我来说也很好。嗯……在python 3.3上对我来说也很好。你的规格是什么?谢谢这似乎解决了这个问题。但这是一个奇怪的问题,我用idle做了同样的尝试,结果成功了。我猜我正在使用的IDE看起来很奇怪。