Основа программирования 26.08.2026 12:15

Красный текст – не приговор. Как читать ошибки в Python и перестать их бояться

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

⏱ 7 мин чтения
Автор материала: Храмов Д.Э.
Красный текст – не приговор. Как читать ошибки в Python и перестать их бояться

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

Ошибки в Python работают точно так же.

Когда новичок видит на экране простыню красного текста, первая реакция – паника. Кажется, что компьютер ругается, что вы сломали программу или сделали что-то ужасное. На самом деле Python просто говорит: «Я запутался. Покажи, где именно, и я продолжу работать».

В этой статье мы разберем, как читать эти «красные простыни» ошибок так же легко, как меню в ресторане.

Золотое правило: Читай СНИЗУ ВВЕРХ

Это самое главное, что нужно запомнить.

Python выполняет код сверху вниз. Но когда он встречает ошибку, он формирует отчет (он называется traceback – «обратная трассировка»). В этом отчете самая важная информация находится в самом низу.

  • СнизуДиагноз (что именно сломалось).

  • Сверху и в серединеКарта (где именно это произошло).

Анатомия ошибки: из чего она состоит?

Давайте посмотрим на типичную ошибку и разберем ее на три простые части.

# Пример кода
def calculate_price(quantity):
    price = 100
    return price + quantity
total = calculate_price("пять")
На этот код интерпретатор Python нам выдаст следующую ошибку:

Traceback (most recent call last):
 File "main.py", line 5, in <module>
   total = calculate_price("пять")
 File "main.py", line 3, in calculate_price
   return price + quantity
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Не пугайтесь объема. Здесь всего 3 смысловых блока:

1. Карта (Середина)

File "main.py", line 5, in <module> 

File "main.py", line 3, in calculate_price

Это адрес. Python говорит: «Мы были в файле main.py, на строке 5, потом перешли на строку 3». Вам пока не нужно вникать в этот список. Просто знайте, что это путь, который прошел код, прежде чем упасть.

2. Код-виновник (Строчка перед диагнозом)

return price + quantity

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

3. Диагноз (Самая последняя строчка)

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Вот на что нужно смотреть в первую очередь! Здесь написано тип ошибки (TypeError) и сообщение об ошибке (unsupported operand...). Это и есть ответ на вопрос «Что не так?».

«Великая четверка»: самые частые ошибки

Эти четыре типа ошибок относятся к числу тех, с которыми начинающие программисты сталкиваются особенно часто. Давайте переведем их с «питоньего» на человеческий.

1. SyntaxError (Синтаксическая ошибка)

Перевод: «Я не понимаю это предложение, тут опечатка».

Аналогия из жизни: Вы пишете «Привет, меня зовут Иван» без запятой и кавычек. Смысл понятен человеку, но грамматика нарушена. Частые причины:

  • Забыли закрыть скобку print("Привет"

  • Забыли кавычку name = "Иван

  • пропустили двоеточие после if, for, while, def
  • Поставили русскую запятую вместо точки в числе 3,14 (Python ждет точку 3.14).

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

2. NameError (Ошибка имени)

Перевод: «Я не знаю, кто это такой. В моем словаре такого имени нет».

Аналогия из жизни: Вы просите коллегу передать привет Абвгдейщику, но такого человека в офисе не работает. Частые причины:

  • Опечатка в встроенной команде: prnt("Привет") вместо print().

  • Вы пытаетесь использовать переменную, которую еще не создали.

3. TypeError (Ошибка типа)

Перевод: «Ты пытаешься сложить яблоки с килограммами».

Аналогия из жизни: Вы пытаетесь вставить квадратный колышек в круглую дырку. Частые причины:

  • Математика со строками: "Возраст: " + 25 (Python не умеет складывать текст и число. Нужно превратить число в текст: "Возраст: " + str(25)).

  • Передаете функции значение неподходящего типа или выполняете операцию над несовместимыми типами данных.

4. FileNotFoundError (Файл не найден)

Перевод: «Я пришел по адресу, но дома нет».

Аналогия из жизни: Вы ищете книгу на полке, но её там нет. Либо вы её не положили, либо вы зашли не в ту библиотеку. Частые причины:

  • Файл лежит в другой папке.

  • Вы ошиблись в названии файла или регистре символов (например, data.csv вместо Data.csv). В зависимости от операционной и файловой системы такие имена могут рассматриваться как разные.

Алгоритм: Что делать, если вылезла ошибка?

Не закрывайте глаза и не бегите сразу за помощью к преподавателю или в чат. Пройдите по этому чек-листу из 4 шагов:

  1. Прокрутите в самый низ. Прочитайте последнюю строчку. Какой Тип ошибки? Что написано в Сообщении? (Если не знаете английский — скопируйте сообщение в переводчик).

  2. Посмотрите на номер строки. В середине текста найдите строчку File "...", line X. Запомните номер X.

  3. Откройте свой код. Перейдите на строку X.

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

Если ничего не помогло: Скопируйте самую последнюю строчку (Диагноз) и вставьте её в поисковик или в чат с ИИ. Формулировка должна быть такой: "Пишу на Python, получил ошибку TypeError: unsupported operand type(s) for +: 'int' and 'str'. Вот мой код: [код]. Объясни причину ошибки и подскажи, на что обратить внимание". Это сэкономит вам часы времени!

 

Главный секрет программистов

Запомните одну вещь: ошибки – это не признак того, что вы плохой программист.

Ошибки – это признак того, что вы пишете код и пробуете новые вещи. Если у вас нет ошибок, значит, вы делаете только то, что уже сто раз делали, и не развиваетесь.

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

В следующий раз, когда Python выдаст вам простыню красного текста, улыбнитесь. Он просто оставил вам подсказку. Идите и разгадайте её!

 

Статья подготовлена в рамках образовательных проектов KHRAMOVD.LAB. Есть вопросы по Python? Задавайте их на нашу почту: khramovde@statandcyb.ru


← Все статьи
На сайте используется Яндекс.Метрика для сбора обезличенной статистики посещаемости и улучшения качества работы сайта. Подробнее — в Политике обработки персональных данных .