Определение и понимание распространенных ошибок Python
На этом этапе мы рассмотрим некоторые распространенные ошибки, которые могут возникнуть при написании кода на Python, и научимся определять и понимать сообщения об ошибках. Возникновение ошибок — это нормальная часть программирования, и умение читать и интерпретировать сообщения об ошибках является важнейшим навыком.
Мы намеренно внесем некоторые ошибки в наш код, чтобы увидеть, как отреагирует Python. Давайте начнем с изменения файла hello.py, который мы создали на первом шаге.
Откройте файл hello.py в редакторе VS Code.
Сначала внесем опечатку в функцию print(). Измените строку на:
prunt("Hello, LabEx!")
Сохраните файл (Ctrl + S).
Теперь запустите измененный файл hello.py из терминала:
python hello.py
Вы должны увидеть сообщение об ошибке, похожее на это:
Traceback (most recent call last):
File "/home/labex/project/hello.py", line 1, in <module>
prunt("Hello, LabEx!")
NameError: name 'prunt' is not defined
Это NameError (ошибка имени). Она сообщает нам, что имя prunt не распознается Python. Это связано с тем, что правильное имя функции — print. Сообщение об ошибке также указывает имя файла (hello.py), номер строки (строка 1) и конкретный код, вызвавший ошибку.
Теперь исправим опечатку в print и добавим отсутствующую кавычку. Верните строку к print, но удалите закрывающую двойную кавычку:
print("Hello, LabEx!)
Сохраните файл и запустите его снова:
python hello.py
Вы должны увидеть другое сообщение об ошибке, скорее всего, SyntaxError (синтаксическая ошибка):
File "/home/labex/project/hello.py", line 1
print("Hello, LabEx!)
^
SyntaxError: unterminated string literal (missing '"')
Эта SyntaxError указывает на проблему со структурой вашего кода. Сообщение "unterminated string literal (missing '"')" (незавершенный строковый литерал (отсутствует '"')) ясно говорит нам, что строка началась с двойной кавычки, но не закончилась ею.
Наконец, исправим кавычки и добавим неанглийский символ для скобок. Измените строку на:
print("Hello, LabEx!")
Обратите внимание, что здесь скобки являются полноширинными китайскими символами, а не требуемыми Python полуширинными английскими символами.
Сохраните файл и запустите его:
python hello.py
Вы, вероятно, увидите SyntaxError, связанную с недопустимыми символами:
File "/home/labex/project/hello.py", line 1
print("Hello, LabEx!")
^
SyntaxError: invalid character '(' (U+FF08)
Это сообщение об ошибке указывает на недопустимый символ и его Unicode-представление. Python ожидает стандартные английские полуширинные символы для элементов синтаксиса, таких как скобки.
Намеренно создавая эти ошибки и наблюдая за сообщениями об ошибках, вы можете начать понимать, что означают различные типы ошибок и как найти источник проблемы в вашем коде. На следующем шаге мы научимся отлаживать эти ошибки.