2017-03-15 12 views
0

これをリームする前に、セルからすべての出力をクリアする方法を詳しく説明している投稿があることを知っていますが、その一部をクリアするだけです。IPythonセルの出力の一部を消去する

いくつかの背景を教えてください。私はLINGOのような単語を推測するゲームを作成しています。ユーザーは5文字の単語を推測し、CSSを使ってどの文字が正しい位置にあり、どの文字が単語に入っているのかを視覚的にフィードバックします間違った位置。私のプログラムがどのように構成されているかは、それぞれの推測の後にフィードバックを表示してから、ユーザーに再度プロンプトを出して推測を表示します。したがって、このような何か:

は、単語を推測:単語

はFEEDBACK

は再び推測:単語

FEEDBACK を...

あなたが画像を取得します。私の目標は、できるだけLINGOを複製することに近づくことです。これは、ユーザー入力が送信され、一連のフィードバックが表示された後で画面からユーザー入力を取り除くことを意味します。私にはこれが3つのいずれかを意味します

1)画面に表示せずに、テキスト入力のためにユーザに要求する方法を見つける出力

2)の一部をクリアする方法を見つける

3)ユーザ入力をキャッシュし、各反復後にすべての出力を削除し、キャッシュされた推測を表示する。

私は1と2を調査して何も見つかりませんでした。 3はPITAなので、トラブルに行く前に私は頼むと思った。

答えて

0

1考えることは不可能か非常に難しいです。普通のPythonでは難しいですが、Jupyterは気にしません。通常のPythonでは、おそらくcursesのようなものを使うだろうが、Jupyterで試してみたところ、Jupyterが動作しているコンソールに影響を与えた。ノートブックのstdoutではない。

あなたが本当に2を望んでいた場合は、おそらくキーストロークのために耳を傾け、改行を押すと、一度提出ループ機能を書い経由末尾の改行を除去した後、キャリッジリターン\rを使用していますinputの独自のバージョンを書くことができます。キャリッジリターンは、次の行が前の行を上書きすることを意味します。

3私は推測しても、入力をキャッシュするのは難しくありませんか?配列や何かにそれらを格納するだけで、IPython.display.clear_outputを使用した後でそれらをユーザーに表示することができます。

関連する問題