Почему IPython лучше стандартного интерпретатора Python

Почему IPython лучше стандартного интерпретатора Python0

Резюме

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

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

Что такое IPython?

Почему IPython лучше стандартного интерпретатора Python1

IPython — это альтернативный интерактивный интерпретатор стандартному интерпретатору Python, который поставляется вместе с языком.

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

Почему IPython лучше стандартного интерпретатора Python2

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

IPython широко доступен во многих менеджерах пакетов дистрибутивов Linux и в Mamba, где он является ключевой частью моей среды разработки.

Цвет и подсветка делают код более заметным

Главное преимущество IPython перед стандартным интерпретатором Python — это использование цвета и подсветки синтаксиса. IPython цветной, в то время как обычный интерактивный Python — монохромный.

Почему IPython лучше стандартного интерпретатора Python3

Этот цвет нужен не только для красоты. Если вы пишете код в большинстве современных текстовых редакторов, редактор будет использовать его для подсветки элементов языка. Это называется «подсветкой синтаксиса». Она полезна для обнаружения ошибок до того, как вы их зафиксируете в коде. Когда вы привыкнете к ней, вы удивитесь, как раньше без неё обходились. Подсветка синтаксиса IPython привносит этот опыт в интерактивный Python.

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

Волшебные команды упрощают жизнь

В IPython есть «магические команды», позволяющие выполнять команды в системе. Они начинаются с символа «%» (знак процента). Хорошим примером является команда %cd, которая меняет рабочий каталог, подобно команде оболочки Linux.

Например:

%cd /

Почему IPython лучше стандартного интерпретатора Python4

В Unix-подобных системах это приведёт к переходу в корневой каталог. Чтобы убедиться в этом, можно запустить внешнюю команду, добавив к ней восклицательный знак (!). Чтобы увидеть текущий рабочий каталог в IPython, выполните команду pwd:

!pwd

В официальной документации есть множество других полезных встроенных магических команд, или просто «магии».

IPython предлагает встроенную справку

Ещё одна приятная функция IPython — встроенная справка. Если мне нужно разобраться, что делает библиотечная функция, я могу добавить вопросительный знак (?) к нужной информации, чтобы быстро получить ответ, не прибегая к поиску в интернете.

Поскольку работа с данными — это моё хобби, я часто использую NumPy. Если мне нужно освежить свои знания, я могу импортировать NumPy и получить справку по объекту.

импортировать numpy как np
нп?

Почему IPython лучше стандартного интерпретатора Python5

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

нп.значит?

Почему IPython лучше стандартного интерпретатора Python6

Это экономит много времени при кодировании, поскольку мне не приходится прерывать процесс, чтобы перейти в веб-браузер.

Дополнение клавишей Tab в IPython упрощает жизнь

Ещё одна функция, к которой я привык в Unix-подобных оболочках, включая Bash и zsh, — это автодополнение по клавише Tab. Когда я ввожу первые несколько букв имени, например, команды или имени файла, оболочка пытается их заполнить. Это значительно экономит время, особенно при вводе длинных команд или имён файлов.

IPython добавил эту функцию в Python. Можно нажать Tab, чтобы открыть список команд, как в окне оболочки. Эта функция работает и с другими объектами.

Я продемонстрирую это на примере, который уже рассматривал в других статьях, — популярном наборе данных с чаевыми в ресторанах Нью-Йорка. Я настрою объект Pandas dataframe через библиотеку Seaborn, поскольку она там доступна.

импорт морского как sns
советы = sns.load_dataset(‘советы’)

Затем я могу начать изучать этот набор данных. Завершить его можно, набрав слово «tips» и нажав Tab. Также можно дополнить методы клавишей Tab, например, метод .head():

советы.head()

Почему IPython лучше стандартного интерпретатора Python7

Я также могу дополнять столбцы клавишей Tab, например, «total_bill». Это значительно экономит время набора текста в IPython.

Вы можете исследовать объекты

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

Почему IPython лучше стандартного интерпретатора Python8

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

тип(наконечники)

Почему IPython лучше стандартного интерпретатора Python9

У многих из этих объектов множество методов. Благодаря автодополнению по клавише Tab я знаю, какие методы доступны, опять же, без необходимости искать документацию.

Вы можете запускать системные команды в IPython

Хотя в Python можно запускать системные команды с помощью метода os.system, при регулярном использовании это может быть неудобно. Его придётся импортировать в каждом сеансе. IPython позволяет легко запускать системные команды, не выходя из IPython и не импортируя библиотеки. Я уже демонстрировал это на примере команды pwd.

Это полезно для выполнения множества системных команд. Например, я могу выполнить команду ping:

!ping -c 4 google.com

Почему IPython лучше стандартного интерпретатора Python10

Это удобно, когда у меня есть только окно терминала с загруженным IPython. Если я хочу выполнить системную команду, мне не нужно открывать ещё одну вкладку или окно терминала.

Этот механизм настолько полезен, что при желании IPython можно использовать даже в качестве системной оболочки. Инструкции по этому поводу есть в официальной документации.

Вы можете регистрировать свои сеансы

IPython полезен не только для запуска команд: вы также можете сохранять свои команды в файлах журналов для просмотра, вызова и обмена с другими людьми.

Вы можете использовать IPython для создания стенограммы сеанса. Чтобы начать ведение журнала, используйте опцию —logfile при запуске IPython.

ipython —файл журнала mylog.py

В IPython вы можете использовать магическую команду %logstart, которая по умолчанию сохраняет данные в ipython_log.py:

%logstart

Почему IPython лучше стандартного интерпретатора Python11

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

%выйти

Почему IPython лучше стандартного интерпретатора Python12

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

%logon

Почему IPython лучше стандартного интерпретатора Python13

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

Почему IPython лучше стандартного интерпретатора Python14

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

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

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий