2011-09-21 4 views
3

http://ipython.org/ipython-doc/dev/interactive/tips.html의 문서에서 명령의 끝에 출력을 억제하기 위해 세미콜론 (;)을 넣으라고합니다. 이 같은도IPython, 출력을 억제하는 세미콜론이 작동하지 않습니다.

>>> \>>> print('Hello'); 
--> 'Hello' 

내 경우에는 작동 I 출력 억제의 잘못된 생각을 가지고 또는이 버그가 수행하지 않는 것? 이것은 pudb에서 일할 때 특히 성가시다. 왜냐하면 내가 '다음'또는 '발걸음'을 누르면 내 경우에 끔찍하게 번쩍이기 때문이다.

P.S 출력물이 내 우분투 ipython 0.10이나 osx lion ipython 0.11 supressed에 있지 않습니다. 깜박이는 문제는 osx에서 악화되었지만 아마도 item2 때문일 수 있습니다.

답변

5

1 + 1;과 같은 것을 시도해보십시오. 세미콜론이 없으면 결과를 출력하여 피드백을 주어야합니다 (정수의 경우 중요하지 않지만 repr으로 포맷 됨). 나는이 출력을 억제해야한다고 가정합니다. 셸은 sys.stdout (본질적으로는 print)이 참조하는 파일에 대한 쓰기를 억제하지 않습니다. 이것은 완전히 다른 문제이며 쉘의 작업이 아닙니다.

+0

그냥 확인해 드리면 델낭이 이것에 대해 옳습니다. 인쇄물이 아닌 표현할 수있는 표현의 결과입니다. –

+0

당신의 빠르고 간결한 대답에 감사드립니다.하지만 제가 기대했던 바를하지 않는다는 것에 실망합니다. – Jonas

4

셀의 첫 번째 줄에 %%capture을 추가하십시오. 예를 들어

%%capture 
print('Hello') 

이 단순히 출력을 삭제하지만, %%capture 마법 변수에 출력을 저장할 수 있습니다 - 여기 consult the docs

0

Dataquest — 28 Jupyter Notebook tips, tricks, and shortcuts 포스트의 또 다른 예입니다 :

# Use a semicolon to suppress the output of a final function. 
    %matplotlib inline 
    from matplotlib import pyplot as plt 
    import numpy 
    x = numpy.linspace(0, 1, 1000)**1.5 
    plt.hist(x); # Output not suppressed w/ semicolon? 

그리고 "작업 중"세미콜론 억제의 예 :

x = 1 + 1 
x; # Output suppressed w/ semicolon! 

그래서 일반적으로 터미널에 표시되지만 "플롯"과 같은 "인라인"유형은 표시하지 않는 것으로 보입니다.

관련 문제