【问题标题】:print(..., end=' ') with immediate output [duplicate]print(..., end=' ') 立即输出[重复]
【发布时间】:2021-04-08 22:33:07
【问题描述】:

我需要一段 Python 代码来在短时间内加载(压力?)CPU。我还想在强调 CPU 期间获得一些输出,例如打印计数器。看起来很简单:

N=32

def fib(n):
    if n < 2:
        return 1
    else:
        return fib(n-1) + fib(n-2)


def main(num):
    for i in range(1, num+1):
        fib(N)
        print(i, end=' ')

if __name__ == '__main__':
    main(10)

但是,当我使用print(i, end=' ') 时,它不会在执行时输出计数器,它只会在完成后输出1 2 3 4 5 6 7 8 9 10

如果我使用常规打印 (print(i)),它会随时打印计数器。

首先,我想知道为什么会出现这种奇怪的效果,其次,如何使带有endprint 在这方面表现得像没有end 关键字的print

【问题讨论】:

    标签: python python-3.x printing io


    【解决方案1】:

    print 操作默认是缓冲的,但您可以强制它刷新缓冲区并立即打印。请参阅Python documentation 了解更多信息。

    print("foobar", flush=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2020-12-13
      • 2022-01-21
      • 2020-04-17
      • 1970-01-01
      • 2022-06-13
      相关资源
      最近更新 更多