
Резюме
- IPython расширяет интерактивный режим Python с помощью подсветки синтаксиса и магических команд
- Он предлагает встроенную справку, автодополнение клавишей Tab и возможность запускать системные команды в Python.
- Вы можете регистрировать сеансы для дальнейшего просмотра, что еще больше расширяет функциональность IPython.
Одна из лучших функций Python — это его интерактивный интерпретатор, позволяющий быстро тестировать код. Что, если бы существовало что-то ещё лучше, чем интерпретатор самого Python? Да, он есть, и называется IPython.
Что такое IPython?

IPython — это альтернативный интерактивный интерпретатор стандартному интерпретатору Python, который поставляется вместе с языком.
Стандартный интерпретатор полезен для тестирования небольших фрагментов кода и изучения языка, но его функциональность базовая. IPython добавляет множество функций, полезных при более широком использовании интерактивного Python. В частности, для тех, кто использует его для науки о данных и анализа данных. Он включает множество функций, о которых я упомяну позже, например, подсветку синтаксиса и магические команды. IPython добавляет множество удобств, упрощающих интерактивное использование Python, даже если вы используете Python в качестве настольного калькулятора.

Одним из побочных продуктов IPython является популярный интерфейс блокнотов Jupyter, который применяется в научных вычислениях. При использовании блокнота Jupyter на основе Python для запуска кода Python используется IPython. Это одна из причин, по которой Python и Jupyter представляют серьёзную конкуренцию проприетарным научным и инженерным программам, таким как Mathematica и MATLAB.
IPython широко доступен во многих менеджерах пакетов дистрибутивов Linux и в Mamba, где он является ключевой частью моей среды разработки.
Цвет и подсветка делают код более заметным
Главное преимущество IPython перед стандартным интерпретатором Python — это использование цвета и подсветки синтаксиса. IPython цветной, в то время как обычный интерактивный Python — монохромный.

Этот цвет нужен не только для красоты. Если вы пишете код в большинстве современных текстовых редакторов, редактор будет использовать его для подсветки элементов языка. Это называется «подсветкой синтаксиса». Она полезна для обнаружения ошибок до того, как вы их зафиксируете в коде. Когда вы привыкнете к ней, вы удивитесь, как раньше без неё обходились. Подсветка синтаксиса IPython привносит этот опыт в интерактивный Python.
Что мне нравится в подсветке синтаксиса IPython, так это то, что она автоматически подсвечивает круглые и квадратные скобки. Они часто встречаются в Python. Сколько раз вы набирали строку и получали сообщение об ошибке из-за того, что забыли поставить закрывающую скобку? Когда вы вводите открывающую скобку, Python подсвечивает её. При наведении курсора на закрывающую скобку подсвечивается открывающая скобка, к которой она принадлежит. Это полезно для вложенных скобок. Без этой функции легко запутаться.
Волшебные команды упрощают жизнь
В IPython есть «магические команды», позволяющие выполнять команды в системе. Они начинаются с символа «%» (знак процента). Хорошим примером является команда %cd, которая меняет рабочий каталог, подобно команде оболочки Linux.
Например:
%cd /

В Unix-подобных системах это приведёт к переходу в корневой каталог. Чтобы убедиться в этом, можно запустить внешнюю команду, добавив к ней восклицательный знак (!). Чтобы увидеть текущий рабочий каталог в IPython, выполните команду pwd:
!pwd
В официальной документации есть множество других полезных встроенных магических команд, или просто «магии».
IPython предлагает встроенную справку
Ещё одна приятная функция IPython — встроенная справка. Если мне нужно разобраться, что делает библиотечная функция, я могу добавить вопросительный знак (?) к нужной информации, чтобы быстро получить ответ, не прибегая к поиску в интернете.
Поскольку работа с данными — это моё хобби, я часто использую NumPy. Если мне нужно освежить свои знания, я могу импортировать NumPy и получить справку по объекту.
импортировать numpy как np
нп?

Я также могу получить справку по конкретной функции. Например, чтобы посмотреть документацию по методу «mean» для нахождения среднего арифметического:
нп.значит?

Это экономит много времени при кодировании, поскольку мне не приходится прерывать процесс, чтобы перейти в веб-браузер.
Дополнение клавишей Tab в IPython упрощает жизнь
Ещё одна функция, к которой я привык в Unix-подобных оболочках, включая Bash и zsh, — это автодополнение по клавише Tab. Когда я ввожу первые несколько букв имени, например, команды или имени файла, оболочка пытается их заполнить. Это значительно экономит время, особенно при вводе длинных команд или имён файлов.
IPython добавил эту функцию в Python. Можно нажать Tab, чтобы открыть список команд, как в окне оболочки. Эта функция работает и с другими объектами.
Я продемонстрирую это на примере, который уже рассматривал в других статьях, — популярном наборе данных с чаевыми в ресторанах Нью-Йорка. Я настрою объект Pandas dataframe через библиотеку Seaborn, поскольку она там доступна.
импорт морского как sns
советы = sns.load_dataset(‘советы’)
Затем я могу начать изучать этот набор данных. Завершить его можно, набрав слово «tips» и нажав Tab. Также можно дополнить методы клавишей Tab, например, метод .head():
советы.head()

Я также могу дополнять столбцы клавишей Tab, например, «total_bill». Это значительно экономит время набора текста в IPython.
Вы можете исследовать объекты
Как упоминалось ранее, команды автодополнения Tab и справки работают как с объектами, так и с функциями языка Python. Python — объектно-ориентированный язык, что означает, что он работает на основе структур данных, которые встраивают базовые данные в код в виде «объектов», а сообщения передаются через методы.

Это может показаться сложным, но команды IPython упрощают понимание кода, который я пишу, а также объектов, создаваемых библиотеками Python. Хорошим примером служит объект dataframe tips. Чтобы убедиться в этом, можно использовать команду type в IPython:
тип(наконечники)

У многих из этих объектов множество методов. Благодаря автодополнению по клавише Tab я знаю, какие методы доступны, опять же, без необходимости искать документацию.
Вы можете запускать системные команды в IPython
Хотя в Python можно запускать системные команды с помощью метода os.system, при регулярном использовании это может быть неудобно. Его придётся импортировать в каждом сеансе. IPython позволяет легко запускать системные команды, не выходя из IPython и не импортируя библиотеки. Я уже демонстрировал это на примере команды pwd.
Это полезно для выполнения множества системных команд. Например, я могу выполнить команду ping:
!ping -c 4 google.com

Это удобно, когда у меня есть только окно терминала с загруженным IPython. Если я хочу выполнить системную команду, мне не нужно открывать ещё одну вкладку или окно терминала.
Этот механизм настолько полезен, что при желании IPython можно использовать даже в качестве системной оболочки. Инструкции по этому поводу есть в официальной документации.
Вы можете регистрировать свои сеансы
IPython полезен не только для запуска команд: вы также можете сохранять свои команды в файлах журналов для просмотра, вызова и обмена с другими людьми.
Вы можете использовать IPython для создания стенограммы сеанса. Чтобы начать ведение журнала, используйте опцию —logfile при запуске IPython.
ipython —файл журнала mylog.py
В IPython вы можете использовать магическую команду %logstart, которая по умолчанию сохраняет данные в ipython_log.py:
%logstart

Вы можете включить и выключить ведение журнала с помощью команд %logoff и %logon.
%выйти

Если вы решите снова включить свой журнал, вы можете воспользоваться магией «входа в систему»:
%logon

Вы можете поделиться своим журналом с кем-то еще, но лучшим способом продемонстрировать, что вы делаете, вероятно, будет блокнот Jupyter, который позволит вам добавлять текст и изображения вместе с вашим кодом Python.

Вы можете просмотреть свою историю команд с помощью магической команды %history, но лучший способ — использовать редактирование командной строки, аналогичное тому, что используется в большинстве современных оболочек. Для поиска в обратном направлении нажмите Ctrl+r.
Python хорош тем, что включает в себя интерактивный режим для изучения языка и быстрого тестирования идей кода. IPython выводит эти возможности на новый уровень благодаря таким мощным функциям, как подсветка синтаксиса и магические команды. Именно эти функции делают IPython таким полезным для начинающих питонистов.