0

내가이 프레임을 다룰 때까지, 셀에서 모든 출력을 지우는 방법에 대해 자세히 설명하는 게시물이 있지만 그 중 일부만 지우는 데 관심이 있습니다.IPython 셀 출력의 일부를 지우는 것

배경 정보를 제공해 드리겠습니다. 저는 LINGO와 같은 단어 추측 게임을 만듭니다. 사용자가 5 글자 단어를 추측하고, CSS를 사용하여 어떤 글자가 올바른 위치에 있는지, 어떤 글자가 단어에 있는지를 시각적으로 알려줍니다. 잘못된 위치. 내 프로그램이 구조화되는 방식으로 각 추측 후에 피드백을 표시 한 다음 사용자에게 다시 묻고 추측을 표시합니다. 이 같은 뭔가 :

이 단어를 추측 : 단어

피드백

추측 다시 : 단어

피드백 ...

당신은 그림을 얻는다. 필자의 목표는 가능한 한 LINGO를 복제하는 것에 가깝게 오는 것입니다. 이는 사용자 입력이 제출 된 후 화면에서 사용자 입력을 제거하고 일련의 피드백을 표시하는 것을 의미합니다. 나에게이 세 가지 중 하나를 의미

1) 화면에 표시하지 않고 텍스트 사용자에게 입력하라는 메시지를 표시 할 수있는 방법을 찾아 출력

2)의 일부를 취소 할 수있는 방법을 찾기

3) 사용자 입력을 캐시하고 각 반복 후에 모든 출력을 삭제하고 캐시 된 추측을 표시합니다.

1과 2를 조사했지만 아무것도 찾을 수 없었습니다. 3 내가 곤경에 빠지기 전에 내가 물어볼 줄 알았던 PITA가 될 것입니다.

답변

0

1 생각은 불가능하거나 매우 어렵습니다. 일반 파이썬에서는 어렵습니다. 결코 Jupyter는 마음에 들지 않습니다. 일반 파이썬에서는 아마도 curses과 같은 것을 사용할 것입니다. 그러나 나는 Jupyter에서 그것을 시험해 보았고 Jupyter가 실행중인 콘솔에 영향을줍니다 - 노트북의 stdout이 아닌 것입니다. 당신이 정말로이 원한다면

, 당신은 아마 키 입력을 수신 루프 함수를 작성하고 줄 바꿈을 누르면 한 번 제출을 통해 후행 줄 바꿈을 제거 후 캐리지 리턴 \r를 사용 input의 자신의 버전을 작성할 수 있습니다. 캐리지 리턴은 다음 행이 이전 행을 겹쳐 쓰는 것을 의미합니다.

3 입력을 캐싱하는 것이 너무 어렵지 않아야한다고 생각합니까? 어레이 또는 무언가에 저장하면 IPython.display.clear_output을 사용한 후 다시 사용자에게 표시 할 수 있습니다.

관련 문제