Skip to main content

Учусь отладке с помощью #REF! Copilot

Определите и исправьте ошибки в коде, запросив GitHub Copilot для справки.

Поиск и исправление ошибок в коде может быть разочарованием, особенно при создании нового разработчика. К счастью, такие инструменты, как GitHub Copilot могут быстро выявлять и сквашировать ошибки, позволяя сосредоточиться на более творческой, интересной работе.

Необходимые компоненты

Примеры в этой статье предполагают, что вы используете GitHub Copilot для отладки Python проекта в Visual Studio Code (VS Code). Чтобы выполнить следующие примеры, необходимо:

  • Выполните настройку Visual Studio Code с помощью Copilot в документации по Visual Studio Code.
  •         [Скачать Python](https://www.python.org/downloads/).
    
  • Установите расширение Python для Visual Studio Code.

Обучение отладке с помощью примеров

При попытке запустить код с ошибкой возникает две основные ситуации:

  • Код завершает работу до завершения работы и получает сообщение об ошибке.
  • Код выполняется без ошибок, но выходные данные отличаются от ожидаемых.

К счастью, Copilot может помочь отладить код в обоих ситуациях. Чтобы узнать, как это сделать, ознакомьтесь со следующими примерами.

Отладка ошибки с помощью GitHub Copilot

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

Давайте рассмотрим пример репозитория:

Клонирование примера репозитория

Сначала необходимо создать локальную копию репозитория:

  1. Начните клонирование репозитория new2code/debug-with-copilot в VS Code.
  2. Выберите расположение для сохранения репозитория на компьютере, а затем нажмите кнопку "Выбрать в качестве назначения репозитория".
  3. При появлении запроса откройте репозиторий.

Запуск файла с ошибками

Теперь давайте запустите файл. Эта программа имитирует битву за кости между двумя игроками.

  1. В VS Codeоткройте и просмотрите файл.

  2. Откройте палитру команд, нажав Ctrl+Shift+P (#REF!/Linux) или Cmd+Shift+P (Mac).

  3. Введите и нажмите клавишу ВВОД.

  4. На вкладке терминала вставьте следующую команду.

    #REF!:

    Shell
    py bugged_dice_battle.py
    

    Mac или Linux:

    Shell
    python bugged_dice_battle.py
    
  5. Нажмите клавишу ВВОД , чтобы запустить программу.

К сожалению, в терминале мы получаем текст ошибки, заканчивающийся следующим сообщением:

TypeError: может только сцепить str (не int) для str

Отладка файла

Чтобы понять, что означает эта ошибка, open в VS Code, затем вставьте и отправьте следующий запрос:

Text
Explain in depth why my code produces the following error and how I can fix it:

TypeError: can only concatenate str (not "int") to str

Copilot будет отвечать на ошибку, так как мы пытаемся объединить целые числа и строки, и вы можете объединять только строки со строками.

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

Отладка неправильного вывода с помощью GitHub Copilot

Иногда ошибка выполняется без возникновения ошибок, но выходные данные явно неверны. В этом случае отладка может быть сложнее, так как VS Code не может сообщить о расположении или описании ошибки.

Для этих "невидимых" ошибок Copilot особенно полезно. Давайте получим практический опыт работы с другим файлом в нашем примере репозитория: Это программа на Python, которая должна вычислять факториал.

Запуск файла с ошибками

Сначала давайте запустите программу, чтобы увидеть неверные выходные данные:

  1. Откройте и просмотрите файл.

  2. В созданном ранее терминале вставьте следующую команду. #REF!:

    Shell
    py bugged_factorial_finder.py
    

    Mac или Linux:

    Shell
    python bugged_factorial_finder.py
    
  3. Нажмите клавишу ВВОД , чтобы запустить программу.

К сожалению, код не работает должным образом. Мы хотим, чтобы он возвращался , правильное значение 6 факториальных, но выходные данные гораздо выше, чем это.

Отладка файла

Чтобы понять, что пошло не так, open и отправьте следующий запрос:

Text
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.

Copilot указывает на то, что, поскольку мы используем оператор, мы фактически умножаемся на оба и. Другими словами, мы умножаем дополнительные значения для каждой итерации цикла.

Чтобы устранить эту ошибку, Copilot предложит код, который удаляет дополнительные данные из уравнения или изменяет оператор на . Внесите это изменение сейчас!

Отладка собственного проекта

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

Например, чтобы выполнить отладку сообщения об ошибке, созданного кодом, отправьте Copilot в следующем запросе:

Text
Explain in depth why my code produces the following error and how I can fix it:

YOUR-ERROR-MESSAGE

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

С помощью этой тактики вы хорошо оснащены, чтобы начать сквашировать ошибки в вашем проекте!

Следующие шаги

При продолжении написания кода вы, вероятно, столкнетесь с конкретными сценариями проблем и ошибками, которые сложно отлаживать. Список потенциальных проблем и пример запроса Copilot Chat, чтобы устранить их, см. в разделе AUTOTITLE.