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

Edw*_*ang 138 python

在许多符号数学系统中,例如Matlab或Mathematica,您可以使用类似的变量Ans%检索最后计算的值.Python shell中是否有类似的工具?

Mar*_*ade 212

下划线.

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15
Run Code Online (Sandbox Code Playgroud)

  • 但它只适用于交互式shell.不要依赖它来编写脚本. (16认同)
  • 耶,最后一块。有了这个,我可以使用交互式 python 作为我的计算器。 (5认同)
  • 此外,如果先前已分配变量`_`,则它不起作用.这种情况并不罕见,因为此符号也用于一次性变量(请参阅/sf/ask/412521441/) (4认同)

Pet*_*ann 71

只是为了记录,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
Run Code Online (Sandbox Code Playgroud)

并且可以使用%ed宏编辑行范围:

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

In [2]: foo()
bar

In [3]: %ed 1-2
Run Code Online (Sandbox Code Playgroud)

  • 在1.2.1中偶然发现了`__`和`___`. (4认同)

Jan*_*cka 16

IPython 允许您_使用双 ( __) 和三重下划线 ( ___)来超越单下划线,返回倒数第二个和倒数第三个命令的结果。

或者,您也可以使用Out[n],其中n是生成输出的输入编号:

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

...

In [155]: Out[64] + 3
Out[155]: 5
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://jakevdp.github.io/PythonDataScienceHandbook/01.04-input-output-history.html