小编典典

python`print`不能循环工作

python

我在一起有多个循环,而在最内部的循环中有一个睡眠。例如:

from time import sleep

for i in range(10):
    print i,
    for j in range(-5,5):
        if j > 0:
            print '.',
        else:
            print 'D',
        sleep(1)
    print ''

如果您运行该代码,则可能需要i等待D1秒钟D然后再次休眠直到结束,才能获得价值。

但是结果是不同的,它等待10秒钟并打印整行,0 D D D D D D . . . .然后再次等待打印下一行。

我发现打印末尾的逗号导致了此问题。我该如何解决?


阅读 276

收藏
2021-01-20

共1个答案

小编典典

由于存在逗号,因此输出缓冲到a为止\n

您应stdout在每次打印或使用后冲洗sys.stdout.write并冲洗缓冲区。

定义您的打印方法:

import sys

def my_print(text):
    sys.stdout.write(str(text))
    sys.stdout.flush()

在行的末尾打印一个 \n

2021-01-20