Отладка — это, по сути, устранение ошибок 😁

Что такое отладка?

  • Это поиск и устранение потенциальных или существующих проблем (ошибок) в нашем коде.
  • Мы тщательно просматриваем наш код, и конечная цель — получить программу без ошибок.

Итак, в основном:

Анализ кода — —› Исправление кода — —› Иметь программу без ошибок

Инструменты, которые помогают нам в этом:

  1. Встроенные инструменты IDE:
  • Это те инструменты в IDE, которые мы используем, например — pycharm, anaconda, идея InteliJ, VS-код.

2. С помощью Python-Tutor:

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

3. Использование операторов печати:

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

4. И последнее, но не менее важное: используйте свой мозг🧠😎

Типы ОШИБОК:

1. Сообщения об ошибках

  • попытка доступа за пределами списка — -> IndexError
  • тест = [1,2,3], затем тест [4])
  • попытка преобразовать неподходящий тип — -> TypeError ( int(test) )
  • ссылка на несуществующую переменную — -> NameError ( a )
  • смешивание типов данных без соответствующего принуждения — —> TypeError ( ‘3’/4 )
  • забыл закрыть круглые скобки, кавычки и т. д. — -› SyntaxError
  • a = len([1,2,3] print(a)

2. Логические ошибки

  • Это сложнее исправить, чем сообщения об ошибках, потому что большую часть времени IDE сама обнаруживает сообщения об ошибках и даже устраняет их, однако логические ошибки трудно найти, и для их устранения требуется третий инструмент (BRAIN).
  • Поэтому мы можем выполнять некоторые упражнения для мозга, например, делать перерыв и позволять подсознанию делать свою работу.
  • Резиновые уточки: я нахожу это очень полезным и эффективным, т. е. объяснение вашего кода кому-то или чему-то (в основном в качестве общего примера используются резиновые уточки, поэтому этот термин придуман как Ruberducking 🦆)

📌 Вы также можете использовать некоторые цифровые альтернативы, такие как Gitduck (duckly) для резинового приседания.

Что можно и чего нельзя делать

Исключения и утверждения

  • Исключения используются, когда возникает непредвиденная ошибка
  • Например, используя обработчики try: и except::
try:
   num_first = int(input("Enter the first number"))
   num_second = int(input("Enter second number"))
   print ( num_first * num_second )
except:
   print ("Enter a valid input")
  • Это напечатает блок исключений («Введите допустимый ввод»), когда любой другой тип данных используется в качестве ввода пользователем.
  • Это было для всех ошибок, таких как TypeError, NameError и всех других ошибок, обсуждавшихся выше.
  • Мы также можем указать блок исключений в соответствии с ошибкой, например:
try:
   num_first = int(input("Enter the first number"))
   num_second = int(input("Enter second number"))
   print ( num_first * num_second )
except TypeError:
   print ("Enter a valid input")

больше.

Вот список некоторых распространенных ошибок

  • SyntaxError: Python не может разобрать программу
  • NameError: локальное или глобальное имя не найдено
  • AttributeError: ссылка на атрибут не работает
  • TypeError: операнд не имеет правильного типа
  • ValueError: тип операнда в порядке, но значение недопустимо
  • IOError: система ввода-вывода сообщает о неисправности (например, файл не найден)

Утверждения

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

использовать утверждения для

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

📌 Обнаружить ошибку и объявить ее фичей — это легенда, но отладка — это то, чем занимаются настоящие легенды 😎

Первоначально опубликовано на https://codexperiences.hashnode.dev.