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秒あたり「112 3 ...」と予想していましたが、動作しません。スリープ方式がなければ、正常に動作します。私は何かがあると思いますが、私はあまりにも無知で理由を知ることができません。

4

1 に答える 1

1

デフォルトでは、標準出力が端末に送られると、出力はラインバッファリングされます。標準出力を手動でフラッシュすることにより、コードを期待どおりに機能させることができます。これは、標準出力をフラッシュする方法です。

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