Отримайте останній результат в інтерактивній оболонці Python


157

У багатьох символічних математичних системах, таких як Matlab або Mathematica, ви можете використовувати змінну типу Ansабо %для отримання останнього обчисленого значення. Чи є подібний об'єкт в оболонці Python?


11
Навіть у Python остання відповідь буде 42.
Томалак

3
42? Усі пропустили можливість для попередньої посилання на інкантато!
amindfv

[в] >>> _1 [вихід] >>> 42? Усі пропустили можливість для попередньої посилання на інкантато!
Григорій

Відповіді:


236

Підкреслення.

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

19
Він працює лише в інтерактивній оболонці. Не покладайтеся на це для сценаріїв.
Джон Фугі

5
Крім того, він не працює, якщо змінна _раніше була призначена. Це не рідкість, так як цей символ також використовується для непридатних змінних (див stackoverflow.com/questions/5893163 / ... )

3
Так, заключний твір. Завдяки цьому я можу використовувати інтерактивний пітон як мій калькулятор.
Яакко

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.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

9

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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.