Получить последний результат в интерактивной оболочке Python

157

Во многих символьных математических системах, таких как Matlab или Mathematica, вы можете использовать переменную, например Ansили, %чтобы получить последнее вычисленное значение. Есть ли подобное средство в оболочке Python?

Эдвард З. Ян
источник
11
Даже в Python последний ответ будет 42.
Томалак
3
42? Все упустили возможность получить ссылку на Prior Incantato!
amindfv
[in] >>> _1 [out] >>> 42? Все упустили возможность получить ссылку на Prior Incantato!
Грегори

Ответы:

236

Нижнее подчеркивание.

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15
Марк Сидаде
источник
19
Это работает только в интерактивной оболочке. Не полагайтесь на это в сценариях.
Джон Фухи
5
Кроме того, он не работает, если переменная _была ранее назначена. Это не редкость, так как этот символ также используется для бросовых переменных (см stackoverflow.com/questions/5893163/... )
3
Yay, последний кусок. При этом я могу использовать интерактивный питон в качестве моего калькулятора.
Яакко
81

Для справки, 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
Питер Хоффманн
источник
4
Нашел __и ___случайно и в 1.2.1.
Сиро Сантилли 郝海东 冠状 病 六四 事件 法轮功
9

IPython позволяет вам выйти за пределы единственного подчеркивания _с помощью double ( __) и triple underscore ( ___), возвращая результаты команд вторых и третьих до последних.

Кроме того, вы также можете использовать 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 .

Ян Кукацка
источник