サブロウ丸

主にプログラミングと数学

Python 出力の上書き

プログラムのループ文の中で計算の途中結果を出力したいけど、
画面につらつらと出力されるのは鬱陶しいなー...という時に便利な、出力を上書きしていく方法です。


サンプルコード

from time import sleep
for i in range(10):
    print('\r', i, end='')
    sleep(1)

'\r'は復帰、すなわち行の先頭に戻るという意味の特殊文字(エスケープシーケンス)です。
'\r'で行の先頭に戻ってiを出力します。その時に改行されないようにend=''を指定してやります。
上記のプログラムではiの出力の前に空白ができてしまうので、これがイヤな人は、

print('\r', i, sep='', end='')
もしくはprint('\r{}'.format(i), end='') と書けばOKです!!