python `print` does not work in loop
我有多个循环在一起,睡眠在最内部的循环。例如:
1 2 3 4 5 6 7 8 9 10 11 | 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 '' |
如果您运行代码,您可能期望在它之后获得
但结果是不同的,它等待10秒,然后打印
我在打印结束时发现逗号导致了这个问题。我怎么解决?
由于逗号的存在,输出缓冲到
每次打印或使用
定义打印方法:
1 2 3 4 5 | import sys def my_print(text): sys.stdout.write(str(text)) sys.stdout.flush() |
在行尾打印一个
使用
您可以使用来自
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from __future__ import print_function from time import sleep import sys for i in range(10): print(i, end='') for j in range(-5,5): if j > 0: print('.', end='') else: print('D', end='') sys.stdout.flush() sleep(1) print('') |
号