获取交互式Python shell中的最后结果

213 投票
3 回答
65555 浏览
提问于 2025-04-11 09:30

在很多符号计算系统,比如Matlab或Mathematica中,你可以用像Ans%这样的变量来获取上一次计算的结果。那么在Python的命令行中,有没有类似的功能呢?

3 个回答

22

IPython 让你可以使用双下划线 __ 和三下划线 ___,这样你就能获取倒数第二个和第三个命令的结果,而不仅仅是最后一个结果(单下划线 _)。

另外,你也可以使用 Out[n],其中 n 是生成输出的输入编号:

In [64]: 1+1
Out[64]: 2

...

In [155]: Out[64] + 3
Out[155]: 5

想了解更多信息,可以查看 这个链接

106

为了说明一下,ipython 这个工具更进一步,你可以用 _ 来访问每一个结果,以及它的数字值。

In [1]: 10
Out[1]: 10

In [2]: 32
Out[2]: 32

In [3]: _
Out[3]: 32

In [4]: _1
Out[4]: 10

In [5]: _2
Out[5]: 32

In [6]: _1 + _2
Out[6]: 42

In [7]: _6
Out[7]: 42

而且,你还可以使用 %ed 这个命令来编辑一段行的内容:

In [1]: def foo():
   ...:     print "bar"
   ...:     
   ...:     

In [2]: foo()
bar

In [3]: %ed 1-2
315

下划线。

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15

撰写回答