筆者は最近流行りのatcoderというものを始めた。
そこで一つ困ったことがある。
それはをatcoderを批判するわけではないが、コードテストのタブが時々読み込むことを繰り返し、なかなか実行してくれないことである。
これの回避策として考えたのはオフラインpython実行環境であるjupyterでコードテストを行うことであるが、
jupyterが複数行の入力に対応しておらず(inputなど)一行ずつコピペしなければならないのでこれもまたストレスである。
*2020/3/3追記 いつぞやのアップデートで高速になりました。
そこで本記事ではjupyterの入力を複数行に対応させる手法を紹介する。
今回はモジュールのipywidgetを使用した。
参考文献はこちらである。
どうして没にされてしまったのかわからない。
#コード
from ipywidgets import Textarea
def get_input(change):
global Input
Input=change["new"]
textarea = Textarea()
textarea.observe(get_input, names='value')
display(textarea)
#jupyterの別枠で
n,*a=Input.split()
print(n,a)
以上のように使える。ちなみに一番上の枠を一度実行しさえすれば、observe関数は常時テキストボックスを監視しているため、入力例でテキストボックス内を書き換えれば、再実行せずともInputが変わる。
また、Input以降の扱いは諸君の得意とするところであろうから、ここでは割愛する。
それでは諸君の良い精進日和を期待する。