【问题标题】:Get last result in interactive Python shell在交互式 Python shell 中获取最后一个结果
【发布时间】:2008-10-14 04:31:49
【问题描述】:

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

【问题讨论】:

  • 即使在 Python 中,最后的答案也是 42。
  • 42?每个人都错过了获取 Prior Incantoto 参考的机会!
  • [输入]>>> _1 [输出]>>> 42?每个人都错过了获取 Prior Incantoto 参考的机会!

标签: python


【解决方案1】:

下划线。

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

【讨论】:

  • 不过,它只适用于交互式 shell。不要依赖它来编写脚本。
  • 此外,如果变量_ 之前已分配,则它不起作用。这并不罕见,因为这个符号也用于一次性变量(请参阅stackoverflow.com/questions/5893163/…
  • 是的,最后一块。有了这个,我可以使用交互式 python 作为我的计算器。
【解决方案2】:

为了记录,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

【讨论】:

  • 在 1.2.1 中偶然发现了 _____
【解决方案3】:

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

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

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

...

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2011-09-01
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多