9 волшебных команд IPython, которые упростят вам процесс программирования
IPython является ядром Jupyter Notebook и лучшим другом специалистов по обработке данных.
Конечно, мы можем просто использовать IPython как обычную утилиту Python, не прибегая к каким-либо специальным трюкам.
Однако будет большим вашим преимуществом, если вы изучите “магические” трюки IPython ,а затем внедрите их в свою практику написания кода.
В этой статье будут описаны 9 простых в использовании “волшебных” команд IPython с интуитивно понятными примерами.
@python_job_interview – разбор вопросов с собеседований Python
1. %magic и %lsmagic: Получение информации о магических командах
Волшебные команды – это всего лишь несколько встроенных команд в ядре IPython, которые делают удобным выполнение некоторых конкретных задач.
Нет необходимости запоминать всё, потому что мы всегда можем получить список всех возможностей с помощью “meta” команды — %lsmagic.
Как показано в приведённом выше примере, в IPython существует два типа волшебных команд:
- для строк: начиная с
%
и применяя к строке кода - для ячеек: начиная с
%%
и применяя к ячейке кода
Если мы хотим использовать определённую функцию и не утруждаем себя поиском её использования в Google, вопросительный знак – это все, что нам нужно:
Как показано выше, мы можем посмотреть документацию для конкретной команды, введя имя команды и знак вопроса.
Существует ещё одна “meta” команда , которая даст вам общее представление обо всех “магических” командах IPython.
Это %magic
:
2. %timeit: Оценка времени выполнения программ на Python
Есть несколько способов проверить, насколько быстра ваша программа на Python. Очень удобный способ – это команда %timeit
IPython.
Эта команда поддерживает магию как на уровне строки, так и на уровне ячейки. Единственная разница заключается в использовании одного или двух процентов.
3. %run: Выполнение внешнего скрипта на Python
Самый простой способ выполнить внешний скрипт Python в текущей оболочке IPython – это использовать команду %run
.
По сути, то, что нам нужно ввести – это просто команда %run
, следующая по пути к скрипту Python:
Эта команда также предоставляет некоторые полезные опции. Мой любимый вариант – это опция -t
, которая может выводить время выполнения скрипта:
Как показано выше, добавление параметра -t
позволит команде %run
вывести процессорное время для выполнения скрипта.
Результаты показывают нам 3 типа временных записей:
- User: количество процессорного времени, затрачиваемого в коде пользовательского режима (вне ядра) внутри процесса.
- System: количество процессорного времени, затрачиваемого ядром в рамках процесса.
- Wall time: реальное прошедшее время (время от начала до окончания вызова).
Кстати, для операционной системы пространство ядра строго зарезервировано для запуска кода системного уровня, такого как драйвер устройства. Напротив, пользовательское пространство предназначено для выполнения кода на уровне приложения.
4. %automagic: Вызов магии без знаков процента
Чтобы сделать использование магии более удобным, IPython предоставляет нам возможность выполнять эти команды без знаков процента.
Что нам нужно сделать, так это установить для команды %automagic
значение 1, как показано в следующем примере:
Теперь мы можем выполнить волшебную команду непосредственно через её имя:
Конечно, если мы хотим отключить его, просто установите значение 0 в %automagic
.
5. %who: Вывод переменных в вашей оболочке IPython
Было бы очень удобно, если бы вы могли проверить все переменные вашей оболочки IPython с помощью одной простой команды.
Волшебная команда %who
может сделать это за вас.
Например, давайте определим ещё несколько переменных и выполним команду %who
:
Как показано в приведённом выше примере, команда %who
чётко перечисляет все переменные, которые мы определили в текущей оболочке IPython.
Мы также можем перечислить все переменные определённого типа:
6. Использование команд Linux с помощью Magics
Даже если вы используете систему Windows, вы всё равно можете выполнять многие команды Linux, такие как %cd, %cat, %cp, %env, %ls, %man, %mkdir, %more, %mv, %pwd, %rm и %rmdir
, в IPython magics путь.
Поскольку мы только что включили %automagic
, было бы более естественно использовать эти Linux команды.
Теперь давайте запустим команду ls
на моём ноутбуке с Windows:
7. %env: Управляйте переменными среды словно гуру
Иногда бывает сложно настроить переменные среды вашей системы, особенно когда вы используете Windows.
К счастью, команда %env
IPython всё упрощает. Его использование заключается в следующем.
- Чтобы перечислить все переменные среды:
%env
- Чтобы задать значение для переменной среды:
%env var=value
8. %xmode: Управляйте информацией об исключениях в вашем коде Python
Волшебная команда %xmode
используется для управления форматом вывода исключений ваших программ.
Она принимает только один аргумент, режим. Существует четыре варианта: Plain
, Context
, Verbose
и Minimal
.
Такой тип гибкости может ускорить процесс отладки. Если причина одного исключения очень очевидна, мы можем просто использовать простой режим. Если нет, мы можем выбрать другой режим, который предоставляет больше информации для отладки.
Например, следующий код находится в режиме Minimal
, поэтому он просто печатает самую важную информацию:
Теперь давайте изменим режим на Verbose. Исключение предоставит более подробную информацию:
9. %history: Легко проверьте старый код
Команда %history
в IPython аналогична команде history в Bash. Она может помочь нам восстановить старый код.
Выполнение её напрямую отобразит весь старый код, который мы запускаем в текущей оболочке IPython.
Добавление опции -n
, как показано ниже, может вывести номера входных строк всего старого кода:
%history -n
Опция -n
с цифрами выведет соответствующие строки кода:
Заключение
“Простое лучше сложного”.
Магические команды IPython прекрасно объясняют эту знаменитую цитату из “The Zen of Python”.
Понимание их – хорошее начало. Но применение этих магических приёмов к вашему следующему проекту более важно.
Спасибо за чтение!