2011-09-21 32 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! 

所以它似乎抑制了通常会在终端显示的语句,而不是“内联”类型,比如图。