Obtenez le dernier résultat dans le shell Python interactif

157

Dans de nombreux systèmes mathématiques symboliques, tels que Matlab ou Mathematica, vous pouvez utiliser une variable comme Ansou %pour récupérer la dernière valeur calculée. Existe-t-il une fonctionnalité similaire dans le shell Python?

Edward Z. Yang
la source
11
Même en Python, la dernière réponse sera 42.
Tomalak
3
42? Tout le monde a raté l'occasion d'une référence Prior Incantato!
amindfv du
[entrée] >>> _1 [sortie] >>> 42? Tout le monde a raté l'occasion d'une référence Prior Incantato!
gregory

Réponses:

236

Souligner.

>>> 5+5
10
>>> _
10
>>> _ + 5
15
>>> _
15
Mark Cidade
la source
19
Cela ne fonctionne que dans le shell interactif, cependant. Ne comptez pas dessus pour les scripts.
John Fouhy
5
De plus, cela ne fonctionne pas si la variable _a été précédemment affectée. Ce n'est pas rare, car ce symbole est également utilisé pour les variables jetables (voir stackoverflow.com/questions/5893163/… )
3
Ouais, la dernière pièce. Avec cela, je peux utiliser python interactif comme calculatrice.
Jaakko
81

Pour mémoire, ipython va encore plus loin et vous pouvez accéder à chaque résultat avec _ et sa valeur numérique

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

Et il est également possible d'éditer des plages de lignes avec la macro% ed:

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

In [2]: foo()
bar

In [3]: %ed 1-2
Peter Hoffmann
la source
4
Trouvé __et ___par hasard aussi en 1.2.1.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
9

IPython vous permet d'aller au-delà du simple trait _de soulignement avec double ( __) et triple underscore ( ___), renvoyant les résultats des commandes deuxième et troisième à la dernière.

Vous pouvez également utiliser Out[n], où nest le numéro de l'entrée qui a généré la sortie:

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

...

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

Pour plus d'informations, voir https://jakevdp.github.io/PythonDataScienceHandbook/01.04-input-output-history.html .

Jan Kukacka
la source