{"meta":{"title":"Учусь отладке с помощью GitHub Copilot","intro":"Определите и исправьте ошибки в коде, запрашивая GitHub Copilot справку.","product":"Начало работы","breadcrumbs":[{"href":"/ru/get-started","title":"Начало работы"},{"href":"/ru/get-started/learning-to-code","title":"Узнайте, как кодировать"},{"href":"/ru/get-started/learning-to-code/learning-to-debug-with-github-copilot","title":"Отладка с Copilot"}],"documentType":"article"},"body":"# Учусь отладке с помощью GitHub Copilot\n\nОпределите и исправьте ошибки в коде, запрашивая GitHub Copilot справку.\n\nПоиск и исправление ошибок в коде может быть разочарованием, особенно при создании нового разработчика. К счастью, такие инструменты, как GitHub Copilot можно быстро выявлять и сквашировать ошибки, позволяя сосредоточиться на более творческой, интересной работе.\n\n## Необходимые компоненты\n\nВ примерах этой статьи предполагается, что вы используете GitHub Copilot для отладки проекта Python (Visual Studio CodeVS Code). Чтобы выполнить следующие примеры, необходимо:\n\n* Выполните настройку Visual Studio Code[Copilot в Visual Studio Code](https://code.visualstudio.com/docs/copilot/setup-simplified) документации.\n* [Скачать Python](https://www.python.org/downloads/).\n* Установите [расширение Python для Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-python.python).\n\n## Обучение отладке с помощью примеров\n\nПри попытке запустить код с ошибкой возникает две основные ситуации:\n\n* Код завершает работу до завершения работы и получает сообщение об ошибке.\n* Код выполняется без ошибок, но выходные данные отличаются от ожидаемых.\n\nК счастью, Copilot может помочь отладить код в обоих ситуациях. Чтобы узнать, как это сделать, ознакомьтесь со следующими примерами.\n\n### Отладка ошибки с помощью GitHub Copilot\n\nПри выполнении кода с ошибкой часто возникает сообщение об ошибке. Сообщение сообщает файлу и строке, в которой произошла ошибка, и кратко описывает, что пошло не так. Однако сообщения об ошибках могут быть запутанными. Чтобы полностью понять и исправить ошибку, мы можем обратиться Copilot за помощью.\n\nДавайте рассмотрим пример репозитория: [`new2code/debug-with-copilot`](https://github.com/new2code/debug-with-copilot)\n\n#### Клонирование примера репозитория\n\nСначала необходимо создать локальную копию репозитория:\n\n1. [Начните клонирование репозитория new2code/debug-with-copilot](vscode://vscode.git/clone?url=https://github.com/new2code/debug-with-copilot) в VS Code. <!-- markdownlint-disable-line GHD003 -->\n2. Выберите расположение для сохранения репозитория на компьютере, а затем нажмите кнопку **\"Выбрать в качестве назначения** репозитория\".\n3. При появлении запроса откройте репозиторий.\n\n#### Запуск файла с ошибками\n\nТеперь давайте запустите [`bugged_dice_battle.py`](https://github.com/new2code/debug-with-copilot/blob/main/bugged_dice_battle.py) файл. Эта программа имитирует битву за кости между двумя игроками.\n\n1. Откройте VS Codeи просмотрите `bugged_dice_battle.py` файл.\n\n2. Откройте палитру команд, нажав <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux) или <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac).\n\n3. Введите `Terminal: Create New Terminal` и нажмите клавишу <kbd>ВВОД</kbd>.\n\n4. На вкладке терминала вставьте следующую команду.\n\n   Windows:\n\n   ```shell copy\n   py bugged_dice_battle.py\n   ```\n\n   Mac или Linux:\n\n   ```shell copy\n   python bugged_dice_battle.py\n   ```\n\n5. Нажмите клавишу <kbd>ВВОД</kbd> , чтобы запустить программу.\n\nК сожалению, в терминале мы получаем текст ошибки, заканчивающийся следующим сообщением:\n\n> TypeError: может только сцепить str (не int) для str\n\n#### Отладка файла\n\nЧтобы понять, что означает эта ошибка, [откройте Copilot Chat его VS Code](vscode://GitHub.Copilot-Chat?ref_product=copilot\\&ref_type=engagement\\&ref_style=text), а затем вставьте и отправьте следующий запрос: <!-- markdownlint-disable-line GHD003 -->\n\n```text copy\nExplain in depth why my code produces the following error and how I can fix it:\n\nTypeError: can only concatenate str (not \"int\") to str\n```\n\nCopilot ответит, что ошибка возникает, так как мы пытаемся объединить целые `die_1` числа и `die_2` строки, и вы можете объединить только строки со строками.\n\nОн также предоставит обновленную **версию нашего кода** , которая исправляет ошибку с помощью `str()` функции для преобразования целых чисел в строки перед объединением их. Выполните последний этап отладки, применив Copilotпредложение к файлу.\n\n### Отладка неправильных выходных данных с помощью GitHub Copilot\n\nИногда ошибка выполняется без возникновения ошибок, но выходные данные явно неверны. В этом случае отладка может оказаться более сложной, так как VS Code не удается сообщить о расположении или описании ошибки.\n\nДля этих \"невидимых\" ошибок особенно Copilot полезно. Давайте получим практический опыт работы с другим файлом в нашем примере репозитория: `bugged_factorial_finder.py` Это программа на Python, которая должна вычислять факториал.\n\n#### Запуск файла с ошибками\n\nСначала давайте запустите программу, чтобы увидеть неверные выходные данные:\n\n1. Откройте и просмотрите `bugged_factorial_finder.py` файл.\n\n2. В созданном ранее терминале вставьте следующую команду.\n   Windows:\n\n   ```shell copy\n   py bugged_factorial_finder.py\n   ```\n\n   Mac или Linux:\n\n   ```shell copy\n   python bugged_factorial_finder.py\n   ```\n\n3. Нажмите клавишу <kbd>ВВОД</kbd> , чтобы запустить программу.\n\nК сожалению, код не работает должным образом. Мы хотим, чтобы он возвращался `720`, правильное значение 6 факториальных, но выходные данные гораздо выше, чем это.\n\n#### Отладка файла\n\nЧтобы понять, что пошло не так, [откройте Copilot Chat](vscode://GitHub.Copilot-Chat?ref_product=copilot\\&ref_type=engagement\\&ref_style=text) и отправьте следующий запрос: <!-- markdownlint-disable-line GHD003 -->\n\n```text copy\nWhy is the output of this code so much higher than expected? Please explain in depth and suggest a solution.\n```\n\nCopilot будет указывать на то, что, поскольку мы используем `*=` оператор, мы фактически умножаемся `factorial` на оба `i`**и**`factorial`. Другими словами, мы умножаем дополнительные `factorial` значения для каждой итерации цикла.\n\nЧтобы устранить эту ошибку, предложит код, Copilot который удаляет дополнительную `factorial` из уравнения или изменяет `*=` оператор `=`на . Внесите это изменение сейчас!\n\n## Отладка собственного проекта\n\nТеперь, когда вы практиковали отладку некоторых простых программ с Copilotпомощью, вы можете использовать те же методики для поиска и устранения ошибок, скрытых в собственной работе.\n\nНапример, чтобы выполнить отладку сообщения об ошибке, созданного кодом, отправьте Copilot следующий запрос:\n\n```text copy\nExplain in depth why my code produces the following error and how I can fix it:\n\nYOUR-ERROR-MESSAGE\n```\n\nВ противном случае, если вы отладите неправильные выходные данные, спросите Copilot , почему выходные данные неверны и как его можно исправить. Для получения наилучших результатов предоставьте максимально возможный контекст о том, как выходные данные отличаются от ваших ожиданий.\n\nС помощью этой тактики вы хорошо оснащены, чтобы начать сквашировать ошибки в вашем проекте!\n\n## Следующие шаги\n\nПри продолжении написания кода вы, вероятно, столкнетесь с конкретными сценариями проблем и ошибками, которые сложно отлаживать. Список потенциальных проблем и примеры Copilot Chat запросов для их устранения см. в разделе [Ошибки отладки](/ru/copilot/tutorials/copilot-cookbook/debug-errors)."}