Справочник · ошибки Python
SyntaxError
Python не смог прочитать программу: где-то нарушены правила записи — нет скобки, кавычки, двоеточия или стоит лишний знак. Программа даже не начинает работать.
Python пишет ошибку в последней строке сообщения: сначала название, после двоеточия — подробности. Найди своё сообщение ниже — рядом объяснение простыми словами и что исправить.
Не те кавычки
print(«Привет!»)SyntaxError: invalid character '«' (U+00AB)
- Что случилось
- В коде стоят кавычки
«. Python их не понимает. - Почему так бывает
- Такие кавычки ставят Word, телефон и мессенджеры. Python понимает только прямые кавычки " или '.
- Как исправить
- Сотри эти кавычки и набери прямые: Shift + 2 в русской раскладке или Shift + Э в английской.
Разбираем в уроке 0.1 «Первая программа».
Нет скобок у print
SyntaxError: Missing parentheses in call to 'print'
- Что случилось
- После print нет скобок.
- Почему так бывает
- Всё, что нужно вывести, print берёт из скобок.
- Как исправить
- Напиши так: print("текст").
Разбираем в уроке 0.1 «Первая программа».
Кавычка не закрыта
print("Привет!)SyntaxError: unterminated string literal (detected at line 1)
- Что случилось
- Ты открыл кавычку и не закрыл.
- Почему так бывает
- Python ищет конец текста и доходит до конца строчки.
- Как исправить
- Поставь вторую кавычку в конце текста.
Разбираем в уроке 0.1 «Первая программа».
Скобка не закрыта
print("Привет"SyntaxError: '(' was never closed- Что случилось
- Скобка
(открыта, но не закрыта. - Почему так бывает
- Каждой открытой скобке нужна закрывающая.
- Как исправить
- Сосчитай скобки в этой строчке и добавь недостающую.
Разбираем в уроке 0.1 «Первая программа».
Скобка не закрыта
SyntaxError: unexpected EOF while parsing
- Что случилось
- Скобка открыта, но не закрыта.
- Почему так бывает
- Каждой открытой скобке нужна закрывающая.
- Как исправить
- Сосчитай скобки в этой строчке и добавь недостающую.
Разбираем в уроке 0.1 «Первая программа».
Лишняя скобка
SyntaxError: unmatched ')'
- Что случилось
- Закрывающая скобка
)лишняя: для неё нет открывающей. - Почему так бывает
- Скобки ходят парами.
- Как исправить
- Убери лишнюю скобку или добавь открывающую.
Разбираем в уроке 0.1 «Первая программа».
Нет двоеточия
SyntaxError: expected ':'
- Что случилось
- После if, for, while, def, try и except нужно двоеточие.
- Почему так бывает
- Двоеточие говорит Python: дальше идёт блок с отступом.
- Как исправить
- Поставь двоеточие в конце строчки.
Разбираем в уроке 2.2 «Если — то — иначе».
Слева должно быть имя
SyntaxError: cannot assign to literal
- Что случилось
- Слева от знака = стоит не имя коробки.
- Почему так бывает
- Знак = кладёт значение в переменную. Слева всегда имя переменной, справа значение. В математике можно писать в любом порядке, в Python нельзя.
- Как исправить
- Напиши имя слева, а значение справа: имя = значение.
Разбираем в уроке 1.2 «Переменные — имена для значений».
Знак сравнения написан наоборот
SyntaxError: invalid syntax
- Что случилось
- Знак
=<Python не знает. - Почему так бывает
- В знаках сравнения равно всегда стоит вторым: <=, >=, !=.
- Как исправить
- Поменяй знаки местами.
Разбираем в уроке 2.1 «Сравниваем».
Команда не в цикле
SyntaxError: 'break' outside loop
- Что случилось
- Команда
breakстоит не внутри цикла. - Почему так бывает
- Break и continue работают только внутри while или for.
- Как исправить
- Сдвинь её вправо, чтобы она оказалась внутри цикла.
Разбираем в уроке 3.3 «Выйти из цикла».
Одно «=» в сравнении
SyntaxError: … Maybe you meant '=='
- Что случилось
- В условии сравнивают через ==.
- Почему так бывает
- Одинарное = значит «запомни», а не «равно».
- Как исправить
- Замени = на ==.
Разбираем в уроке 2.1 «Сравниваем».
Одно равно вместо двух
SyntaxError: invalid syntax
- Что случилось
- В проверке стоит один знак =, а нужно сравнение.
- Почему так бывает
- Один знак = кладёт значение в переменную. Сравнивают двумя знаками ==.
- Как исправить
- Замени = на == в проверке.
Разбираем в уроке 2.2 «Если — то — иначе».
Умножение — это звёздочка
SyntaxError: invalid character '×'
- Что случилось
- В коде стоит знак
×. Python его не понимает. - Почему так бывает
- В тетради умножают крестиком или точкой, а в Python — звёздочкой *.
- Как исправить
- Замени
×на *: например, 24 * 60.
Разбираем в уроке 0.1 «Первая программа».
Непонятный символ
SyntaxError: invalid character '«'
- Что случилось
- В коде есть символ
«, который Python не понимает. - Почему так бывает
- Часто его приносит копирование текста из документа или чата.
- Как исправить
- Сотри этот символ и набери нужный вручную.
Разбираем в уроке 0.1 «Первая программа».
Умножение — это звёздочка
SyntaxError: invalid syntax
- Что случилось
- Между числами стоит буква
х. Python не знает такого знака. - Почему так бывает
- В тетради умножают крестиком, а в Python — звёздочкой *.
- Как исправить
- Замени
хна *: например, 24 * 60.
Разбираем в уроке 0.1 «Первая программа».
Текст без кавычек
SyntaxError: invalid syntax
- Что случилось
- В строчке есть слова без кавычек:
привет. - Почему так бывает
- Слова без кавычек Python читает как команды и имена. Текст для него всегда пишется в кавычках.
- Как исправить
- Возьми весь текст в прямые кавычки, например print("Привет, Бит!").
Разбираем в уроке 0.1 «Первая программа».
У try нет except
SyntaxError: expected 'except' or 'finally' block
- Что случилось
- После блока try не найден блок except.
- Почему так бывает
- Блок try сам по себе не работает. Ему нужен запасной путь: except с названием ошибки.
- Как исправить
- Добавь после try строчку except ValueError: и действие с отступом.
Разбираем в уроке 7.2 «try и except».
Не хватает запятой
SyntaxError: invalid syntax. Perhaps you forgot a comma?
- Что случилось
- Между значениями не хватает запятой.
- Почему так бывает
- Значения в скобках print, в списках и словарях разделяют запятыми.
- Как исправить
- Поставь запятую между значениями.
Разбираем в уроке 0.1 «Первая программа».
Python не понял строчку
SyntaxError: invalid syntax
- Что случилось
- Python не понял, как написана строчка.
- Почему так бывает
- Чаще всего пропущена кавычка, скобка или двоеточие. Иногда причина строчкой выше.
- Как исправить
- Проверь кавычки и скобки в этой строчке и в строчке над ней.
Разбираем в уроке 0.1 «Первая программа».
Запасные значения идут в конце
def order(size="средняя", dish):
print(size, dish)SyntaxError: parameter without a default follows parameter with a default
- Что случилось
- Обычный параметр стоит после параметра с запасным значением.
- Почему так бывает
- Python раздаёт значения по порядку. Поэтому параметры с запасным значением ставят после обычных.
- Как исправить
- Перенеси параметры без запасного значения вперёд.
Разбираем в уроке 5.4 «Запасные значения и свои переменные».
Другие ошибки
NameErrorAttributeErrorTypeErrorIndentationErrorTabErrorValueErrorZeroDivisionErrorIndexErrorKeyErrorUnboundLocalErrorRecursionErrorFileNotFoundErrorUnsupportedOperationUnicodeDecodeErrorModuleNotFoundErrorJSONDecodeErrorEOFErrorAssertionErrorValidationErrorMissingSchemaConnectionErrorReadTimeoutHTTPErrorOperationalErrorIntegrityErrorProgrammingErrorNotImplementedError