睡眠方法的发生器无法工作?

时间:2012-05-30 02:36:09

标签: python

我正在做一个斐波那契序列。每当我处理Console(在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)

我预计每1秒钟“1 1 2 3 ......”但它永远不会奏效!没有睡眠方法,它运行正常。 我觉得有些东西,但我太无知了,不知道为什么。

1 个答案:

答案 0 :(得分:1)

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

import sys  # probably near the top of the file
sys.stdout.flush()  # after printing