MacOSXでpythonバージョン2.7.3を実行しています。
次のコード ブロックを検討してください。
from __future__ import print_function
import time
x = 0
while x < 5:
print(x)
x += 1
time.sleep(1)
このスクリプトを実行すると、期待どおりの出力が得られます。各数値0
に文字が追加された数値です。さらに、各数字は 1 秒の一時停止後に表示されます。4
\n
0
1
2
3
4
次のコード ブロックを考えてみましょう。
from __future__ import print_function
import time
x = 0
while x < 5:
print(x, end='')
x += 1
time.sleep(1)
出力は's01234
なしで期待どおりですが、タイミングは予想外です。このプロセスは、1 秒間の休止の後に各桁を表示するのではなく、4 秒間待ってから 5 つの数字すべてを表示します。\n
while ループとはprint('string')
異なる動作をするのはなぜですか? print('string', end='')
一度に1秒ずつ、改行なしで文字を表示する方法はありますか? を試してみsys.stdout.write(str(x))
ましたが、 と同じように動作しprint(end='')
ます。