Dapatkan hasil terakhir dalam shell Python interaktif

157

Dalam banyak sistem matematika simbolis, seperti Matlab atau Mathematica, Anda dapat menggunakan variabel seperti Ansatau %untuk mengambil nilai yang dihitung terakhir. Apakah ada fasilitas serupa di shell Python?

Edward Z. Yang
sumber
11
Bahkan dengan Python, jawaban terakhirnya adalah 42.
Tomalak
3
42? Semua orang melewatkan kesempatan untuk referensi Incantato Sebelumnya!
amindfv
[di] >>> _1 [keluar] >>> 42? Semua orang melewatkan kesempatan untuk referensi Incantato Sebelumnya!
gregory

Jawaban:

236

Menggarisbawahi.

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15
Mark Cidade
sumber
19
Ini hanya bekerja di shell interaktif. Jangan mengandalkan itu untuk skrip.
John Fouhy
5
Selain itu, tidak berfungsi jika variabel _telah ditetapkan sebelumnya. Ini tidak biasa, karena simbol ini juga digunakan untuk variabel throwaway (lihat stackoverflow.com/questions/5893163/… )
3
Yay, bagian terakhir. Dengan ini saya dapat menggunakan python interaktif sebagai kalkulator saya.
Jaakko
81

Sebagai catatan, ipython mengambil langkah ini lebih jauh dan Anda dapat mengakses setiap hasil dengan _ dan nilai numeriknya

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

Dan dimungkinkan untuk mengedit rentang baris dengan% ed makro juga:

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

In [2]: foo()
bar

In [3]: %ed 1-2
Peter Hoffmann
sumber
4
Ditemukan __dan ___kebetulan juga di 1.2.1.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
9

IPython memungkinkan Anda melampaui underscore tunggal _dengan double ( __) dan triple underscore ( ___), mengembalikan hasil dari perintah kedua dan ketiga ke terakhir.

Atau, Anda juga dapat menggunakan Out[n], di mana njumlah input yang menghasilkan output:

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

...

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

Untuk info lebih lanjut, lihat https://jakevdp.github.io/PythonDataScienceHandbook/01.04-input-output-history.html .

Jan Kukacka
sumber