获取交互式Python shell中的最后结果
在很多符号计算系统,比如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