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