Jupyter Notebook上でHTMLコードを使ってカウントダウンを表示する

はじめに

Jupyter Notebook上で数字のカウントダウン(カウントアップ)をリアルタイムで表示するようなコードを書きました.

何に使えるのかは謎ですが,おもしろかったので披露します.

コード

大枠は,HTMLをNotebook上で表示させるという感じ.

In [1]:
import time as time
from IPython.display import display, HTML, clear_output
In [2]:
for i in range(10):
    time.sleep(1)
    clear_output(wait=True)
    display(HTML("<font size=7>Loop:" + str(i) +"</font>"))
Loop:9

今回はアニメーションにしなかったので最後の9だけが表示されていますが,上記コードを実行するとちゃんとリアルタイムでカウントアップされます.

clear_outputすることで表示の重複を避けています.これがないと毎回新しく数字が表示されるので少しめんどくさい.

ちなみにパラメータwaitで次のoutputが用意できるまで今のoutputを表示し続けるかを設定できる.

たぶん(表示の)クリアの発動タイミングの話だと思う.wait=Trueだと次のoutputが用意されたらクリア発動し,wait=Falseでは問答無用でそのコードの実行タイミングでクリアが発動される.

wait=Trueの方が表示は滑らかに見えるだろうなと思って試してみたが,実際そうだった.

In [3]:
for i in range(3):
    time.sleep(1)
    #clear_outputなし
    #clear_output(wait=True)
    display(HTML("<font size=7>Loop:" + str(i) +"</font>"))
Loop:0
Loop:1
Loop:2

おわりに

HTMLをわりと素直に記述できるのでいろいろ応用がききそう.今回は以上です.

0