3

このコードを実行すると:

for x in range(10):
    time.sleep(1)
    print("a")

それはまさにそれがすべきことをします。しかし、これを実行すると:

for x in range(10):
    time.sleep(1)
    print("a", end="")

10 秒間待機してから 10 を出力しaます。

どうすればこれを防ぐことができますか?

4

1 に答える 1

7

印刷後に stdout をフラッシュします。

import time
import sys

for x in range(10):
    time.sleep(1)
    print("a", end="")
    sys.stdout.flush()

Python 3.3の print関数にはオプションのflushパラメーターがあります。Python 3.3 以降では次のように記述できます。

import time

for x in range(10):
    time.sleep(1)
    print("a", end="", flush=True)
于 2013-08-02T03:25:16.393 に答える