Obtenga el último resultado en el shell interactivo de Python

157

En muchos sistemas matemáticos simbólicos, como Matlab o Mathematica, puede usar una variable como Anso %para recuperar el último valor calculado. ¿Existe una instalación similar en el shell de Python?

Edward Z. Yang
fuente
11
Incluso en Python la última respuesta será 42.
Tomalak
3
42? ¡Todos perdieron la oportunidad de una referencia previa de Incantato!
amindfv
[dentro] >>> _1 [fuera] >>> 42? ¡Todos perdieron la oportunidad de una referencia previa de Incantato!
Gregory

Respuestas:

236

Guion bajo.

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15
Mark Cidade
fuente
19
Sin embargo, solo funciona en el shell interactivo. No confíes en él para los guiones.
John Fouhy,
55
Además, no funciona si la variable _se ha asignado previamente. No es raro, ya que este símbolo también se usa para variables desechables (consulte stackoverflow.com/questions/5893163/… )
3
Yay, la pieza final. Con esto puedo usar python interactivo como mi calculadora.
Jaakko el
81

Solo para el registro, ipython va un paso más allá y puede acceder a todos los resultados con _ y su valor numérico

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

Y también es posible editar rangos de líneas con la macro% ed:

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

In [2]: foo()
bar

In [3]: %ed 1-2
Peter Hoffmann
fuente
44
Encontrado __y también ___por casualidad en 1.2.1.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
9

IPython le permite ir más allá del guión bajo simple _con el guión bajo doble ( __) y triple ( ___), devolviendo los resultados de los comandos de penúltima y tercera.

Alternativamente, también puede usar Out[n], donde nes el número de la entrada que generó la salida:

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

...

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

Para obtener más información, consulte https://jakevdp.github.io/PythonDataScienceHandbook/01.04-input-output-history.html .

Jan Kukacka
fuente