数学がわからない

日々の勉強をアウトプットする。

Python3 進捗の更新表示

python で for文を回しているときなど、進捗を更新表示したいときは次のように書く。

for n in range(500):
    sys.stdout.write("\r%d" %n)
    sys.stdout.flush()

少し説明する。

sys.stdout.write()

printとの違いは、最後に改行されないこと。
f:id:rettouseinosugakubenkyo:20190112070810p:plain

"\r"

出力を行の先頭にする。これにより、前に出力した数字への上書きを行っている。
f:id:rettouseinosugakubenkyo:20190112070946p:plain

"%d" %n

数字nを整数として表示。小数や文字にしてもいいし、式にしてもいい。
f:id:rettouseinosugakubenkyo:20190112071642p:plain

sys.stdout.flush()

表示を更新する。書かないと、「必ず表示を更新する」ことが行われない。

以上、簡単に書くときはprintでいいが、大量のデータを処理するときとかは割と必要になる。しかし、覚えるのはなかなか面倒。ここで書いたくらいのことを理解していれば使いこなせると思う。