为什么单元格中的最后一行生成输出,而前面的行则不生成输出?

nic*_*omp 3 python jupyter-notebook

给定这个 Jupyter 笔记本单元:

x = [1,2,3,4,5]
y = {1,2,3,4,5}
x
y
Run Code Online (Sandbox Code Playgroud)

当单元执行时,它会生成以下输出:

{1, 2, 3, 4, 5}
Run Code Online (Sandbox Code Playgroud)

单元格中的最后一行生成输出,其上方的行没有效果。据我所知,这适用于任何数据类型。

这是与上面相同的代码的片段:

与上面的代码相同!

Nex*_*xif 7

您可以通过以下方式更改此行为:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
Run Code Online (Sandbox Code Playgroud)

之所以只打印最后一行,是因为 的默认值为ast_node_interactivitylast_expr

您可以在这里阅读更多相关信息: https://ipython.readthedocs.io/en/stable/config/options/terminal.html