2011-09-21 33 views
3

http://ipython.org/ipython-doc/dev/interactive/tips.html的文檔中,它說在分隔符(;)的末尾放置一個分號以禁止其輸出。這似乎沒有工作在我的情況下,因爲即使是一個IPython,分號來抑制輸出不起作用

我有錯誤的想法輸出抑制或這是一個錯誤?在pudb中工作時,這特別令人討厭,因爲在我按「下一個」或「進入」時,它在我的情況下非常可怕。

P.S輸出既不在我的Ubuntu的ipython 0.10也沒有osx lion ipython 0.11壓制。儘管osx中閃爍的問題更糟,可能是因爲item2。

回答

5

嘗試類似1 + 1;。如果沒有分號,它應該通過打印給你反饋結果(格式爲repr,雖然在整數情況下無關緊要) - 我認爲這是應該抑制的輸出。 shell不會(也不應該)禁止寫入sys.stdout引用的文件(這實質上就是print所做的)。這是一個完全不同的問題,而不是殼的工作。

+0

只是爲了確認,delnan對此非常正確 - 這是表達式的結果,您可以壓制,而不是打印東西。 –

+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! 

所以它似乎抑制了通常會在終端顯示的語句,而不是「內聯」類型,比如圖。