/
disciplina
/
stepik-python-debugging
Обзор
Документация
Войти
/
disciplina
/
stepik-python-debugging
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
lessons/module1/1.4/lesson3.step
18 строк
12 KB
Sergey
Вторая версия курса
27 янв 2026, 21:14
27 янв 2026, 21:14
79b9655
Код
Авторство
О чём код?
{ "block": { "name": "text", "text": "<h2>Краткий обзор графических отладчиков</h2>\n\n<p>Графические отладчики предоставляют визуальный интерфейс для отладки Python-программ, что делает процесс более интуитивным и удобным, особенно для сложных проектов.</p>\n\n<h3>Основные преимущества графических отладчиков</h3>\n\n<ul>\n<li>✅ <strong>Визуализация кода</strong> — подсветка текущей строки выполнения</li>\n<li>✅ <strong>Breakpoint'ы мышью</strong> — установка точек останова кликом</li>\n<li>✅ <strong>Панели переменных</strong> — наглядный просмотр всех переменных</li>\n<li>✅ <strong>Стек вызовов</strong> — визуальное представление цепочки вызовов</li>\n<li>✅ <strong>Watch-выражения</strong> — отслеживание значений выражений</li>\n<li>✅ <strong>Интеграция с редактором</strong> — отладка прямо в IDE</li>\n</ul>\n\n<h3>1. PyCharm Debugger</h3>\n\n<h4>Описание</h4>\n<p><strong>PyCharm</strong> — профессиональная IDE от JetBrains со встроенным мощным отладчиком.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Графический интерфейс для установки breakpoint'ов</li>\n<li>✅ Условные breakpoint'ы с визуальной настройкой</li>\n<li>✅ Панель Variables с иерархией объектов</li>\n<li>✅ Evaluate Expression — выполнение кода во время отладки</li>\n<li>✅ Watches — отслеживание выражений</li>\n<li>✅ Inline debugging — значения переменных прямо в редакторе</li>\n<li>✅ Удалённая отладка</li>\n<li>✅ Отладка многопоточных приложений</li>\n<li>✅ Отладка Django/Flask приложений</li>\n<li>❌ Платная (есть бесплатная Community Edition)</li>\n</ul>\n\n<h4>Основные действия:</h4>\n<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n<tr>\n<th>Действие</th>\n<th>Горячая клавиша</th>\n</tr>\n<tr>\n<td>Установить/удалить breakpoint</td>\n<td>Ctrl+F8 (клик на полосе слева)</td>\n</tr>\n<tr>\n<td>Запустить отладку</td>\n<td>Shift+F9</td>\n</tr>\n<tr>\n<td>Step Over (next)</td>\n<td>F8</td>\n</tr>\n<tr>\n<td>Step Into (step)</td>\n<td>F7</td>\n</tr>\n<tr>\n<td>Step Out (return)</td>\n<td>Shift+F8</td>\n</tr>\n<tr>\n<td>Continue (resume)</td>\n<td>F9</td>\n</tr>\n<tr>\n<td>Evaluate Expression</td>\n<td>Alt+F8</td>\n</tr>\n</table>\n\n<h4>Уникальные функции:</h4>\n<ul>\n<li><strong>Smart Step Into</strong> — выбор конкретной функции для входа в цепочке вызовов</li>\n<li><strong>Drop Frame</strong> — возврат к предыдущему фрейму стека</li>\n<li><strong>Run to Cursor</strong> — выполнение до позиции курсора</li>\n<li><strong>Attach to Process</strong> — подключение к запущенному процессу</li>\n</ul>\n\n<hr>\n\n<h3>2. Visual Studio Code Debugger</h3>\n\n<h4>Описание</h4>\n<p><strong>VS Code</strong> — бесплатный редактор от Microsoft с мощным расширяемым отладчиком.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Бесплатный и open-source</li>\n<li>✅ Легковесный по сравнению с PyCharm</li>\n<li>✅ Поддержка launch.json для конфигурации отладки</li>\n<li>✅ Debug Console для выполнения кода</li>\n<li>✅ Conditional breakpoints</li>\n<li>✅ Logpoints — вывод в консоль без остановки</li>\n<li>✅ Exception breakpoints</li>\n<li>✅ Отладка Jupyter Notebooks</li>\n<li>✅ Удалённая отладка через SSH</li>\n<li>❌ Требует настройки через launch.json</li>\n</ul>\n\n<h4>Основные действия:</h4>\n<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n<tr>\n<th>Действие</th>\n<th>Горячая клавиша</th>\n</tr>\n<tr>\n<td>Установить/удалить breakpoint</td>\n<td>F9</td>\n</tr>\n<tr>\n<td>Запустить отладку</td>\n<td>F5</td>\n</tr>\n<tr>\n<td>Step Over</td>\n<td>F10</td>\n</tr>\n<tr>\n<td>Step Into</td>\n<td>F11</td>\n</tr>\n<tr>\n<td>Step Out</td>\n<td>Shift+F11</td>\n</tr>\n<tr>\n<td>Continue</td>\n<td>F5</td>\n</tr>\n<tr>\n<td>Остановить отладку</td>\n<td>Shift+F5</td>\n</tr>\n</table>\n\n<h4>Настройка (launch.json):</h4>\n<pre><code>{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Python: Current File\",\n \"type\": \"python\",\n \"request\": \"launch\",\n \"program\": \"${file}\",\n \"console\": \"integratedTerminal\",\n \"justMyCode\": false\n }\n ]\n}\n</code></pre>\n\n<hr>\n\n<h3>3. Spyder Debugger</h3>\n\n<h4>Описание</h4>\n<p><strong>Spyder</strong> — научная IDE для Python с интегрированным отладчиком, похожим на MATLAB.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Ориентирован на научные вычисления</li>\n<li>✅ Интеграция с IPython</li>\n<li>✅ Variable Explorer с визуализацией массивов</li>\n<li>✅ Plots панель для графиков</li>\n<li>✅ Отладка с поддержкой NumPy/Pandas</li>\n<li>✅ Бесплатный</li>\n<li>❌ Менее гибкий, чем PyCharm/VS Code</li>\n</ul>\n\n<hr>\n\n<h3>4. Wing IDE Debugger</h3>\n\n<h4>Описание</h4>\n<p><strong>Wing IDE</strong> — профессиональная Python IDE с продвинутым отладчиком.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Быстрый и отзывчивый отладчик</li>\n<li>✅ Debug Probe — интерактивная оболочка во время отладки</li>\n<li>✅ Stack Data — детальный просмотр стека</li>\n<li>✅ Отладка многопоточных приложений</li>\n<li>✅ Unit testing интеграция</li>\n<li>❌ Платный (есть бесплатная Personal версия)</li>\n</ul>\n\n<hr>\n\n<h3>5. Eclipse PyDev Debugger</h3>\n\n<h4>Описание</h4>\n<p><strong>Eclipse с плагином PyDev</strong> — мощная среда разработки с графическим отладчиком.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Бесплатный и open-source</li>\n<li>✅ Профессиональные возможности отладки</li>\n<li>✅ Remote debugging</li>\n<li>✅ Debug console</li>\n<li>❌ Тяжёлый и медленный</li>\n<li>❌ Сложная настройка</li>\n</ul>\n\n<hr>\n\n<h3>6. Jupyter Debugger (JupyterLab Debugger)</h3>\n\n<h4>Описание</h4>\n<p>Встроенный визуальный отладчик для Jupyter Notebooks.</p>\n\n<h4>Ключевые возможности:</h4>\n<ul>\n<li>✅ Отладка прямо в notebook</li>\n<li>✅ Breakpoint'ы в ячейках</li>\n<li>✅ Визуализация переменных</li>\n<li>✅ Интеграция с ipykernel</li>\n<li>❌ Ограничен контекстом notebook</li>\n</ul>\n\n<hr>\n\n<h3>Сравнительная таблица графических отладчиков</h3>\n\n<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n<tr>\n<th>Отладчик</th>\n<th>Цена</th>\n<th>Производительность</th>\n<th>Простота</th>\n<th>Функционал</th>\n<th>Лучше всего для</th>\n</tr>\n<tr>\n<td><strong>PyCharm</strong></td>\n<td>Платный*</td>\n<td>Средняя</td>\n<td>✅✅✅</td>\n<td>✅✅✅✅✅</td>\n<td>Профессиональная разработка</td>\n</tr>\n<tr>\n<td><strong>VS Code</strong></td>\n<td>Бесплатно</td>\n<td>Высокая</td>\n<td>✅✅✅✅</td>\n<td>✅✅✅✅</td>\n<td>Универсальная разработка</td>\n</tr>\n<tr>\n<td><strong>Spyder</strong></td>\n<td>Бесплатно</td>\n<td>Средняя</td>\n<td>✅✅✅</td>\n<td>✅✅✅</td>\n<td>Научные вычисления</td>\n</tr>\n<tr>\n<td><strong>Wing IDE</strong></td>\n<td>Платный*</td>\n<td>Высокая</td>\n<td>✅✅✅</td>\n<td>✅✅✅✅</td>\n<td>Профессиональная Python-разработка</td>\n</tr>\n<tr>\n<td><strong>Eclipse PyDev</strong></td>\n<td>Бесплатно</td>\n<td>Низкая</td>\n<td>✅✅</td>\n<td>✅✅✅✅</td>\n<td>Enterprise Java+Python проекты</td>\n</tr>\n<tr>\n<td><strong>Jupyter</strong></td>\n<td>Бесплатно</td>\n<td>Средняя</td>\n<td>✅✅✅✅</td>\n<td>✅✅✅</td>\n<td>Data Science в notebooks</td>\n</tr>\n</table>\n\n<p><small>* Есть бесплатные версии с ограничениями</small></p>\n\n<h3>Выбор графического отладчика</h3>\n\n<h4>Выберите PyCharm, если:</h4>\n<ul>\n<li>Работаете с большими проектами</li>\n<li>Нужны продвинутые возможности рефакторинга</li>\n<li>Важна глубокая интеграция с фреймворками (Django, Flask)</li>\n<li>Готовы платить за Professional версию</li>\n</ul>\n\n<h4>Выберите VS Code, если:</h4>\n<ul>\n<li>Нужен легковесный и быстрый редактор</li>\n<li>Работаете с разными языками программирования</li>\n<li>Хотите бесплатное решение</li>\n<li>Важна настраиваемость и расширяемость</li>\n</ul>\n\n<h4>Выберите Spyder, если:</h4>\n<ul>\n<li>Работаете с научными данными (NumPy, Pandas, Matplotlib)</li>\n<li>Привыкли к MATLAB</li>\n<li>Нужна интеграция с IPython</li>\n</ul>\n\n<h4>Выберите Wing IDE, если:</h4>\n<ul>\n<li>Нужен быстрый и отзывчивый отладчик</li>\n<li>Важна стабильность</li>\n<li>Работаете только с Python</li>\n</ul>\n\n<h4>Выберите Jupyter Debugger, если:</h4>\n<ul>\n<li>Работаете в Jupyter Notebooks</li>\n<li>Занимаетесь Data Science</li>\n<li>Нужна быстрая прототипирование и исследование</li>\n</ul>\n\n<h3>Общие возможности всех графических отладчиков</h3>\n\n<ul>\n<li>🔍 Визуальная установка breakpoint'ов</li>\n<li>🔍 Пошаговое выполнение (Step Over, Step Into, Step Out)</li>\n<li>🔍 Просмотр локальных и глобальных переменных</li>\n<li>🔍 Стек вызовов с навигацией</li>\n<li>🔍 Вычисление выражений (Evaluate Expression)</li>\n<li>🔍 Watch-выражения</li>\n<li>🔍 Условные breakpoint'ы</li>\n<li>🔍 Exception breakpoints</li>\n</ul>\n\n<p>В следующих уроках мы подробно рассмотрим конкретные отладчики и специализированные инструменты.</p>", "video": null, "options": {}, "subtitle_files": [], "is_deprecated": false, "source": {}, "subtitles": {}, "tests_archive": null, "feedback_correct": "", "feedback_wrong": "" }, "id": null, "has_review": false, "time": "2026-01-27T00:00:00.000Z" }