python`print`不能循环工作

发布于 2021-01-29 14:58:23

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

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 . . . .然后再次等待打印下一行。

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

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    定义您的打印方法:

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

    在行的末尾打印一个 \n



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看