2016-08-26 7 views
5

python 3を使用して同じ行にループの結果を出力しようとしましたが、Python: for loop - print on the same lineを読んだ後に処理しました。私は、印刷前にpythonを使用してforループ内の同じ行にsleep()とprint()を補間します。

time.sleep(2) 

を挿入したとき

for x in range(1,10): 
    print(x, end="") 

今の問題があります。 私はなど、2秒以上待ってから、2秒、2番目のを待って、最初の文字を印刷したい

ここ

コード:それと

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

我々は(20秒待つ= 10 * 2)、数字だけが表示されます。これは私たちが期待していることではありません。

私は、すなわちラインバッファを意味し、バッファリングされ

+0

を(http://stackoverflow.com/questions/38411532/どのようにi-print-from-a-python-2-7-script-from-bash-within-pycharm/38411633)を使用するかを指定します。 – TigerhawkT3

答えて

5

出力stdoutになど、二番目の文字を印刷し、より多くの2秒を待って、最初の文字を印刷し、2秒待って、上記予想される動作を持っているために何をすべきかを改行が印刷されるまではフラッシュされません。

明示的に印刷するたびにバッファフラッシュ:

print(x, end="", flush=True) 

をデモ:また、[こちら]別の重複を参照してください

demonstration animation showing slowly-added digits at 2 second intervals

+0

本当の最初の手紙が実際に大文字で書かれるかもしれないと付け加えることが重要だと思います。 ;-) –

関連する問題