Как отлаживать код Python

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

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

Как и в случае с любым другим языком программирования, ошибки могут тратить драгоценное время при кодировании с помощью Python. К сожалению, избежать их невозможно. Итак, как вы можете понять их и как справиться с ними? Это одни из лучших способов отладки кода Python.

Что такое исключения Python?

Когда Python не может интерпретировать код или команду, он вызывает исключение. Исключения Python – это набор ошибок, которые возникают, когда Python выполняет ваш код.

Python вызывает исключения для ошибок с помощью блоков try и except . Исполняемые команды обычно находятся внутри блока try .

Но когда код внутри try терпит неудачу, Python выполняет код внутри блока except .

По сути, операторы внутри ключевого слова except являются исключениями из тех, что находятся в блоке try , и Python вызывает их как ошибки.

Иногда блок try … except может содержать несколько исключений ( кроме ключевых слов). Неизбежно это приводит к цепочке ошибок. И это объясняет типичные подробные ошибки, с которыми вы иногда сталкиваетесь в Python.

Исключения могут возникать при использовании встроенной функции, библиотеки или фреймворка Python.

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

Например, вы могли написать всего пять строк кода, но Python выполняет проверку с ошибкой в ​​строке 200.

Это происходит потому, что Python вызывает исключения, которые были предварительно определены в исходном коде библиотеки, фреймворка или встроенного метода, который вы используете.

Ошибки синтаксиса

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

Если вы новичок в Python, вы, вероятно, будете чаще сталкиваться с синтаксическими ошибками. Но с ними легко справиться, если вы поймете, как с ними обращаться.

Как отлаживать код Python

В Python есть несколько исключений. Они могут включать, среди прочего, ошибки отступов, типов и имен.

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

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

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

Вы можете использовать любой или комбинацию следующих методов для отладки Python.

1. Проверьте описание ошибки.

Один из лучших способов исправить ошибки Python – это проверить описание ошибки. Python обычно указывает это в последней строке вашего сообщения об ошибке.

Например, неожиданный EOF во время синтаксического анализа всегда связан с отсутствующей круглой скобкой. Тем не менее, недействительным синтаксис неправильный ассоциируется синтаксис где – то, в то время как AttributeError появляется при попытке вызвать неправильную функцию из класса или объекта.

Есть много других исключений, с которыми вы можете столкнуться. Ключевым моментом может быть простое отслеживание линии, откуда они берутся, и переписывание кода.

2. Проследите линию, откуда исходит ошибка.

К счастью, в Python ошибки ограничиваются строкой. Поэтому, если вы столкнулись с ошибкой, обратите внимание на строку, на которую указывает Python.

Например, ошибка в приведенном ниже примере является ошибкой типа, потому что код пытается объединить разнородные типы данных (строку и целое число).

Однако эта ошибка указывает на строку 2 в примере кода:

Код:

 db = open("output.txt", "a")
a = "Hello"+1
b = "How do you do?"
db.write(a+", "+b+"
")

Ошибка:

 raceback (most recent call last):
File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2, in
a = "Hello"+1
TypeError: can only concatenate str (not "int") to str

Взгляните на другой пример ошибки ниже:

Код:

 def findTotal(a):
for i in a
print(sum(i)*2)

Ошибка:

 File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2
for i in a
^
SyntaxError: invalid syntax

Здесь Python указывает на синтаксическую ошибку в строке 2. Если вы знакомы с Python, найти пропущенное двоеточие после цикла for должно быть легко.

3. Используйте метод трассировки в командной строке.

Хотя вы можете отлаживать Python с помощью встроенного IDLE, вы вряд ли будете использовать его при работе с более крупными проектами.

Таким образом, один из лучших способов отладки Python – через интерфейс командной строки (CLI). Это синоним запуска console.log () в JavaScript.

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

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

Чтобы использовать этот метод, запустите свой файл в командной строке следующим образом:

 python -m trace --trace file_name.py

Хотя запускать весь сценарий таким образом непрактично, вы можете создать отдельный файл Python, вставить каждый блок кода (по одному) в этот файл, а затем запускать каждый код отдельно.

Хотя это не то, что вы делаете во время модульного тестирования, это все же форма модульной отладки.

4. Проверьте свой код.

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

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

Модульное тестирование использует несколько методов отладки для проверки и профилирования вашего кода на правильность с помощью функции assert . Он даже может проверить время, необходимое для запуска вашего кода, и так далее.

Во время производства вы можете создать отдельный файл Python, обычно называемый test.py , и тестировать каждую единицу вашего кода внутри этого файла.

Модульный тест может выглядеть так:

 data = {
"guitars":[
{"Seagull":"$260"},
{"Fender":"$700"},
{"Electric-acoustic":"$600"}
]
}
if len(data["guitars"])==2:
for i in data["guitars"]:
print(i)
assert len(data["guitars"])==2, "Length less than what's required, should be 3"

Поскольку длина массива меньше 3, Python выдает ошибку утверждения:

 AssertionError: Length less than what's required, should be 3

5. Используйте журналы

Проверка ошибок с помощью журналов – еще один способ отладки кода. Python имеет встроенную библиотеку ведения журналов . Он работает, детализируя, как ваша программа работает в консоли.

Связанный: Как отправлять автоматические сообщения электронной почты в Python

Однако ведение журнала более полезно, когда ваша программа находится на стадии развертывания. Но хотя вы не можете просматривать журналы в консоли, когда ваше приложение находится в развертывании, вы можете настроить простой протокол передачи почты (SMTP), чтобы получать журналы кода по электронной почте.

Таким образом вы узнаете, в какой момент ваша программа выйдет из строя.

6. Используйте стандартный отладчик Python.

У Python есть популярный встроенный отладчик под названием pdb . Поскольку он встроен, можно просто импортировать pdb в тестовый файл.

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

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

Чтобы начать работу с pdb , откройте файл Python и запустите отладчик следующим образом:

 import pdb; pdb.set_trace()

Затем вы можете запустить свой файл Python через интерфейс командной строки:

 Python Your_Python_file.py

Вы увидите модуль pdb в скобках в вашем CMD. Введите h, чтобы просмотреть список доступных команд для pdb :

 (pdb) h

Результат выглядит так:

Например, перечислите свой код построчно, начиная с точки запуска:

 (pdb) l

7. Отладка с использованием IDE.

Интегрированные среды разработки (IDE) также являются ценными инструментами для отладки вашего скрипта Python.

Например, Visual Studio Code с функцией запуска и отладки и плагином языковой поддержки под названием Pylance позволяет запускать код в режиме отладки. Pycharm – еще одна отличная IDE, которая может помочь вам найти ошибки в вашем коде.

Связанный: Лучшие бесплатные редакторы кода для написания вашего приложения

Eclipse также предлагает сторонний плагин Pydev для легкой отладки ваших скриптов Python.

8. Ищите решения в Интернете.

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

Например , Stackoverflow – это популярное сообщество программистов, где вы можете задавать вопросы и получать ответы. Вы даже обнаружите, что для большинства проблем, с которыми вы можете столкнуться, уже есть решения на всей платформе.

Кроме того, YouTube содержит множество видео для кодирования, которые вы можете использовать.

Отладка – это не просто избавление от ошибок

Ошибки – неотъемлемая часть кодирования, но знание того, как с ними справляться, выделяет вас и помогает писать код быстрее. Однако отладка выходит за рамки устранения ошибок. Иногда у вас даже может быть рабочий код, который плохо работает; поиск способов исправить недостатки также является частью отладки.