IPython — интерактивная оболочка для языка программирования Python, разработанная для улучшения удобства работы в командной строке и в интерактивных вычислительных сеансах. Проект возник как расширенная замена стандартной оболочки Python и со временем развился в экосистему инструментов для интерактивного программирования, отладки и исследовательского анализа данных. IPython предоставляет возможности, ориентированные на интерактивное исследование: гибкую обработку ввода и вывода, расширенные средства ввода команд и интеграцию с внешними инструментами.
Исторически IPython был создан как открытый проект и получил широкое распространение в научных и образовательных сообществах благодаря удобству интерактивной работы, поддержке расширений и совместимости с существующим стеком Python. В результате развития некоторые компоненты IPython стали основой для более широких проектов, включая интерфейсы на основе веба и системы управления вычислительными блокнотами. При этом сам IPython сохраняет фокус на интерактивной оболочке и предоставлении возможностей, которые упрощают повседневную работу разработчиков и исследователей.
- Интерактивный ввод: поддержка многострочного ввода, автодополнение имён и объектов, навигация по истории команд и удобные сокращённые команды для часто используемых операций.
 - Подсветка синтаксиса: улучшенная читаемость введённого кода с выделением ключевых слов, литералов и структур языка.
 - История и навигация: хранение истории команд между сеансами, поиск по истории и возможность повторного выполнения предыдущих команд.
 - Магические команды: специальный набор команд, упрощающих выполнение системных операций, профилирование, отладку и управление окружением без необходимости писать вспомогательный код.
 - Интеграция с отладкой и профилированием: удобный доступ к инструментам для пошаговой отладки, измерения производительности и анализа исполнения кода.
 - Расширяемость: поддержка плагинов и расширений, позволяющих добавлять новые команды, средства отображения результатов и интеграции с внешними библиотеками.
 - Форматы ввода-вывода: гибкая работа с текстовым выводом, преобразование результатов в разные представления и взаимодействие с форматами данных, используемыми в науке и аналитике.
 - Совместимость: возможность использовать существующие библиотеки Python и интеграция с инструментами экосистемы, что облегчает перенос скриптов в интерактивную среду.