0

我正在制作一个斐波那契数列。每次我处理控制台(在 Windows 上)时,它运行得太快并且突然自行退出。

所以我Time.sleep()过去常常看看发生了什么事。这是来源:

    def fibo():
      pv1,pv2 = 0,1
      while True:
        yield pv2
        pv1,pv2=pv2,pv1+pv2
    import time
    f=fibo()
    for result in f:
      print(result,end=' ')
      time.sleep(0.5)

我预计每 0.5 秒“1 1 2 3 ...”,但它永远不会起作用!没有 sleep 方法,它运行良好。我认为有一些东西,但我太无知了,不知道为什么。

4

1 回答 1

1

默认情况下,当标准输出到终端时,输出是行缓冲的。您可以通过手动刷新标准输出使您的代码按预期工作。这是您刷新标准输出的方式:

import sys  # probably near the top of the file
sys.stdout.flush()  # after printing
于 2012-05-30T02:42:21.743 回答