如何在Jupyter中显示完整输出,不仅仅是最后的结果?

时间:2016-04-22 06:43:02

标签: python ipython jupyter

我希望Jupyter能够打印所有交互式输出而不需要打印,而不仅仅是最后的结果。怎么做?

示例:

a=3
a
a+1

我想显示

  

3
  4

4 个答案:

答案 0 :(得分:95)

感谢Thomas,这是我正在寻找的解决方案:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

答案 1 :(得分:11)

https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

1)将此代码放在Jupyter单元格中:

* -> *

2)在Windows中,以下步骤会使更改成为永久更改。应该适用于其他操作系统。您可能需要更改路径。

Traversable

使用以下代码在profile_defaults中创建一个ipython_config.py文件:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

答案 2 :(得分:2)

每个笔记本基础

正如其他人回答的那样,将以下代码放入Jupyter Lab或Jupyter Notebook单元将起作用:

<style>
    body, html {margin: 0;}
    #header {display: grid;background-color: #2e2e2e;width: 100vw;height: 100vh;overflow: hidden;}
    #header i {position: absolute;border-radius: 100%;background: grey; }
</style>
<body>
    <div id="header"></div>
<script>
    window.onresize = function() {
        skyCity();
    };

    function skyCity() {
        for( var i=0; i < 400; i++) {

            var header = document.getElementById("header"),
                cityLight = document.createElement("i"),
                x = Math.floor(Math.random() * window.innerWidth * .98),
                y = Math.floor(Math.random() * window.innerHeight),
                size = Math.random() * 1.5;
                animate = Math.random() * 50;

            cityLight.style.left = x + 'px';
            cityLight.style.top = y + 'px';
            cityLight.style.width = size + 1.5 + 'px';
            cityLight.style.height = size + 1.5 + 'px';
            cityLight.style.opacity = Math.random();
            cityLight.style.animationDuration = 10 + animate + 's';

            header.appendChild(cityLight);
        }
    };
    skyCity();
</script>
</body>

永久更改

但是,如果您要永久使用Jupyter Lab,则需要创建一个IPython Notebook配置文件。运行以下命令以执行此操作(如果使用Jupyter Notebook,则不要运行-以下是更多详细信息):

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

如果您正在使用Jupyter Notebook,则应该已经创建了此文件,并且无需再次运行它。实际上,运行该命令可能会覆盖您当前的首选项。

一旦创建了此文件,对于Jupyter Lab和Notebook用户一样,请将以下代码添加到文件ipython profile create 中:

C:\Users\USERNAME\\.ipython\profile_default\ipython_config.py

我发现在较新的Jupyter版本中不需要c.InteractiveShell.ast_node_interactivity = "all" ,但是如果这对您不起作用,请将c = get_config()添加到文件的开头。

有关c = get_config()以外的其他标志选项,请访问this链接: https://ipython.readthedocs.io/en/stable/config/options/terminal.html#configtrait-InteractiveShell.ast_node_interactivity

答案 3 :(得分:1)

您必须打印它,或者从不同的单元格显示它,或者从同一行显示它 - Jupyter显示最后的结果

a=3
a
out[1]: 3
(other cell)
a+1
out[2]: 4

或:

a=3
print(a)
print(a+1)
out[3]: 3
4

或:

a=3
a, a+1
out[4]: (3, 4)