LoginSignup
25
21

More than 3 years have passed since last update.

AtCoderのためにjupyterの入力を複数行に対応させる

Last updated at Posted at 2019-02-28

筆者は最近流行りのatcoderというものを始めた。

そこで一つ困ったことがある。
それはをatcoderを批判するわけではないが、コードテストのタブが時々読み込むことを繰り返し、なかなか実行してくれないことである。

これの回避策として考えたのはオフラインpython実行環境であるjupyterでコードテストを行うことであるが、
jupyterが複数行の入力に対応しておらず(inputなど)一行ずつコピペしなければならないのでこれもまたストレスである。

*2020/3/3追記 いつぞやのアップデートで高速になりました。

qiita.png

そこで本記事では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)

jupyter

qiita2.png

以上のように使える。ちなみに一番上の枠を一度実行しさえすれば、observe関数は常時テキストボックスを監視しているため、入力例でテキストボックス内を書き換えれば、再実行せずともInputが変わる。
また、Input以降の扱いは諸君の得意とするところであろうから、ここでは割愛する。

それでは諸君の良い精進日和を期待する。

25
21
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
21