Python для новичковПервый запускКомментарии и простые опечатки

Комментарии и простые опечатки

Уроки курсаКомментарии и простые опечатки

Чтение сообщения об ошибке и исправление опечатки

Сообщение об ошибке — не враг, а подсказка. Вернёмся к выводу, который мы уже видели в предыдущей секции:

  File "hello.py", line 1
    print("Привет, мир!"
         ^
SyntaxError: '(' was never closed

Здесь три элемента, каждый из которых несёт конкретную информацию:

  • File "hello.py", line 1 — имя файла и номер строки, где интерпретатор потерял нить.

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

  • Повтор кода со стрелкой ^ — интерпретатор показывает саму строку и указывает символом ^ на место, где обнаружил проблему.
  • SyntaxError: '(' was never closed — тип ошибки и краткое описание. Помогает сузить поиск, но не всегда точно называет причину.

Читать вывод нужно сверху вниз: сначала File/line — чтобы найти место, потом описание — чтобы понять, что искать.

Теперь разберём второй распространённый случай — пропущенная кавычка. Добавьте в hello.py такую строку:

print("Привет, мир!)

Здесь закрывающая кавычка пропущена, а скобка стоит. Запускаем:

  File "hello.py", line 1
    print("Привет, мир!)
          ^
SyntaxError: unterminated string literal (detected at line 1)

Интерпретатор сообщает, что строковый литерал не был закрыт — он дошёл до конца строки, так и не найдя закрывающей кавычки. Исправление: добавить " перед закрывающей скобкой:

print("Привет, мир!")

Примечание. В Python до версии 3.10 то же самое сообщение выглядело как SyntaxError: EOL while scanning string literal. Смысл тот же — строка не закрыта, — но формулировка другая. Если вы встретите его в старых руководствах, знайте: речь об одной и той же проблеме.

Обратите внимание на важный нюанс: номер строки в line N — это место, где интерпретатор обнаружил проблему, а не обязательно место, где вы допустили опечатку. Пропущенная кавычка в начале строки может «сломать» синтаксис гораздо позже. Если строка N выглядит корректно — посмотрите на строку выше.

Весь цикл исправления:

  1. Запустить python hello.py и получить ошибку.

  2. Найти строку File "...", line N в выводе.

  3. Перейти к строке N в файле.

  4. Найти опечатку: пропущена скобка, кавычка или что-то лишнее.

  5. Исправить и запустить снова.