Отладка Pycharm Как использовать Pycharm для отладки кода

Debug

GitHub.com/Arthur Мужской…

Даны n натуральных чисел от 1 до n, необходимо выполнить лексикографическую сортировку. Найдите k-е натуральное число из этого сорта.

Цель: быстро найти строку кода, где произошла ошибка.

Если мы хотим посмотреть, что изменится на определенном шаге, мы можем остановить программу на этом шаге.

Например, если я поставлю красную точку останова слева от строки 49, программа завершится на строке 48 и не будет работать до строки 49.

Посмотрите, как следующая строка кода выполняется шаг за шагом, строка за строкой в ​​соответствии с порядком выполнения программы.

Функция вызывается в строке 48. Я хочу посмотреть, что произошло в этой функции. Как выполняется каждое выражение в этой функции? Когда мы нажмем шаг внутрь, мы перейдем к функции, вызываемой текущей строкой.

После ввода блока кода функции используйте шаг, чтобы увидеть, как работает код в функции.

Когда дисплей переходит к строке 48, эта строка кода не выполняется, и переменная по-прежнему имеет предыдущее значение.

image.png

После продолжения перехода только что выбранная строка кода будет выполнена.

image.png

После того, как step into входит в блок кода функции и снова сталкивается с функцией, мы продолжаем выполнять шаг в функцию.

Когда мы хотим перейти от самой внутренней функции к внешней функции, мы щелкаем по шагу, то есть переходим от тела внутренней функции к телу внешней функции. Процесс выхода фактически эквивалентен полному запуску ранее вызванной функции.

Также есть кнопка «Войти в Мой код». и шагнуть вРазница в том, что:

Когда функция, к которой я запускаюсь, определена в моем текущем файле кода, использование шага в моем коде вызовет текущую функцию.

Но если функция, которую я запускаю, не определена в текущем файле кода, например функция, импортированная из других пакетов,

шаг в Мой код не входит в эту функцию.

И вступайте, пока вызов функции происходит в этой строке кода, независимо от того, определена ли функция в текущем файле кода или импортирована в другом пакете, она перепрыгнет в него.

Если вы просто хотите проверить, есть ли какие-либо проблемы с функцией, написанной в текущем файле кода, вы можете щелкнуть шаг в Мой код.

Роль Run to Cursor. Несмотря на то, что dubug в настоящее время отображается в строке 49, когда я помещаю курсор мыши в строку 47,

image.pngdebug выполнит следующие шаги напрямую и не остановится до положения курсора.

image.png

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

Затем, после нажатия шага, он будет запускаться строка за строкой из строки точки останова.Результат каждой строки, а также изменения переменных в памяти будут отображаться в pycharm, чтобы помочь нам в отладке.

image.png