Ячейки ввода и вывода на консоли IPython нумеруются постепенно. В этой главе давайте подробно рассмотрим кэширование ввода-вывода в Python.
В IPython входные данные извлекаются с помощью клавиши со стрелкой вверх. Кроме того, все предыдущие входы сохраняются и могут быть восстановлены. Переменные _i , __i и ___i всегда хранят три предыдущие входные записи. Кроме того, переменные In и _in предоставляют списки всех входных данных. Очевидно, _in [n] получает входные данные из n-й входной ячейки. Следующий сеанс IPython поможет вам понять это явление —
In [1]: print ("Hello") Hello In [2]: 2+2 Out[2]: 4 In [3]: x = 10 In [4]: y = 2 In [5]: pow(x,y) Out[5]: 100 In [6]: _iii, _ii, _i Out[6]: ('x = 10', 'y = 2', 'pow(x,y)') In [7]: In Out[7]: ['', 'print ("Hello")', '2+2', 'x = 10', 'y = 2', 'pow(x,y)', '_iii, _ii, _i', 'In' ] In [8]: In[5] 9. IPython — IO Out[8]: 'pow(x,y)' In [9]: _ih Out[9]: ['', 'print ("Hello")', '2+2', 'x = 10', 'y = 2', 'pow(x,y)', '_iii, _ii, _i', 'In', 'In[5]', '_ih' ] In [11]: _ih[4] Out[11]: 'y = 2' In [12]: In[1:4] Out[12]: ['print ("Hello")', '2+2', 'x=10']
Точно так же одинарные, двойные и тройные подчеркивания действуют как переменные для хранения предыдущих трех выходных данных. Также Out и _oh образуют объект словаря с номером ячейки и выводом ячеек, выполняющих действие (не включая операторы присваивания). Чтобы получить содержимое определенной выходной ячейки, используйте Out [n] или _oh [n] . Вы также можете использовать нарезку, чтобы получить выходные ячейки в пределах диапазона.