我在一起有多个循环,而在最内部的循环中有一个睡眠。例如:
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然后再次休眠直到结束,才能获得价值。
i
D
但是结果是不同的,它等待10秒钟并打印整行,0 D D D D D D . . . .然后再次等待打印下一行。
0 D D D D D D . . . .
我发现打印末尾的逗号导致了此问题。我该如何解决?
由于存在逗号,因此输出缓冲到a为止\n。
\n
您应stdout在每次打印或使用后冲洗sys.stdout.write并冲洗缓冲区。
stdout
sys.stdout.write
定义您的打印方法:
import sys def my_print(text): sys.stdout.write(str(text)) sys.stdout.flush()
在行的末尾打印一个 \n