# Get last result in interactive Python shell

## Question:

In many symbolic math systems, such as Matlab or Mathematica, you can use a variable like `Ans`

or `%`

to retrieve the last computed value. Is there a similar facility in the Python shell?

## Answers:

Underscore.

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

Just for the record, ipython takes this one step further and you can access every result with _ and its numeric value

```
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
```

And it is possible to edit ranges of lines with the %ed macro too:

```
In [1]: def foo():
...: print "bar"
...:
...:
In [2]: foo()
bar
In [3]: %ed 1-2
```

IPython allows you to go beyond the single underscore `_`

with double (`__`

) and triple underscore (`___`

), returning results of the second- and third-to-last commands.

Alternatively, you can also use `Out[n]`

, where `n`

is the number of the input that generated the output:

```
In [64]: 1+1
Out[64]: 2
...
In [155]: Out[64] + 3
Out[155]: 5
```

For more info, see https://jakevdp.github.io/PythonDataScienceHandbook/01.04-input-output-history.html .