SyntaxError : invalid syntax. Perhaps you forgot a comma? ссылка неверный синтаксис. Возможно, ты забыл запятую?
Два значения стоят рядом без разделителя: в списке, кортеже или аргументах функции Python ждал запятую.
частые причины
Пропущена запятая между элементами списка или аргументами. Две строки в кавычках подряд без оператора между ними. как починить
Найди в подсвеченной строке два значения подряд и поставь между ними запятую.
SyntaxError: invalid syntax в справочнике
SyntaxError : invalid syntax. Maybe you meant '==' or ':=' instead of '='? ссылка неверный синтаксис. Может быть, ты имел в виду == или := вместо =?
В условии стоит присваивание =, а сравнение пишется двумя знаками ==.
частые причины
Одиночное = внутри if, while или elif. как починить
Замени = на == в условии.
было
if x = 5 :
print ( "пять" ) стало
if x == 5 :
print ( "пять" ) SyntaxError: invalid syntax в справочнике
SyntaxError : Missing parentheses in call to 'print'. Did you mean print(...)? ссылка не хватает скобок в вызове print. Ты имел в виду print(...)?
В Python 3 print это функция, и её аргументы пишут в скобках. Запись без скобок осталась в Python 2.
частые причины
Код или пример из старого учебника на Python 2. как починить
Возьми аргументы print в круглые скобки.
SyntaxError: invalid syntax в справочнике
SyntaxError : unterminated string literal (detected at line 3) ссылка незавершённая строка: кавычка открыта, но не закрыта до конца строки
Python дошёл до конца строки кода, а закрывающей кавычки не встретил.
частые причины
Забыта закрывающая кавычка. Апостроф внутри строки в одинарных кавычках: 'it's'. Кавычки-ёлочки «» вместо " или ' (Python не считает их кавычками). как починить
Закрой строку той же кавычкой, какой открыл. Если внутри есть апостроф, возьми строку в двойные кавычки.
стало
print ( 'Привет, мир' ) SyntaxError: invalid syntax в справочнике
SyntaxError : unterminated triple-quoted string literal (detected at line 12) ссылка незавершённая многострочная строка в тройных кавычках
Строка, открытая тремя кавычками, не закрыта до конца файла. Всё после неё Python считает текстом.
частые причины
Закрывающие """ потеряны или в них две кавычки вместо трёх. Docstring открыт, а закрыт обычной кавычкой. как починить
Найди открывающие тройные кавычки и поставь такие же закрывающие.
SyntaxError: invalid syntax в справочнике
SyntaxError : invalid character '«' (U+00AB) ссылка недопустимый символ ««» (код U+00AB)
В коде за пределами строки и комментария стоит символ, которого нет в синтаксисе Python: типографская кавычка, тире, кириллическая буква.
частые причины
Код скопирован из мессенджера, Word или статьи: кавычки " заменились на «» или “”, дефис на тире. Кириллическая буква в имени переменной или в операторе: русская «с» вместо латинской c. Символ из оформления, например • или →, попал в код. как починить
Перенабери подсвеченный символ с клавиатуры: прямые кавычки " и ', дефис -, латинские буквы.
SyntaxError: invalid syntax в справочнике
SyntaxError : invalid non-printable character U+00A0 ссылка недопустимый непечатаемый символ U+00A0
В коде спрятан невидимый символ, чаще всего неразрывный пробел (U+00A0) из документа или веб-страницы.
частые причины
Код скопирован с сайта или из документа, где обычные пробелы заменены неразрывными. как починить
Удали отступы в подсвеченной строке и набери пробелы заново с клавиатуры.
SyntaxError: invalid syntax в справочнике
SyntaxError : expected 'except' or 'finally' block ссылка ожидался блок except или finally
Блок try не может стоять один: после него обязательно идёт except или finally.
частые причины
Написан try, а обработка ошибки ещё не дописана. except стоит с другим отступом и не относится к этому try. как починить
Добавь после тела try блок except Ошибка: на том же уровне отступа, что и try.
стало
try :
x = int (text)
except ValueError :
x = 0 try/except в справочнике
SyntaxError : expected ':' ссылка ожидался символ :
Заголовок if, for, while, def или class должен заканчиваться символом :, а его нет.
частые причины
Забыто двоеточие в конце строки с if, else, for, while, def, class, try. как починить
Поставь : в конце подсвеченной строки.
было
def hello ()
print ( "Привет" ) стало
def hello ():
print ( "Привет" ) SyntaxError: invalid syntax в справочнике
SyntaxError : '(' was never closed ссылка скобка ( так и не была закрыта
Открывающая скобка ( осталась без пары. Python часто показывает ошибку строкой ниже, на следующем выражении.
частые причины
Не закрыты скобки вызова функции или списка. Скобка закрыта не тем символом: ) вместо ]. как починить
Посчитай открывающие и закрывающие скобки в подсвеченной строке и в строке над ней.
было
print ( "Сумма:" , total
total = 0 стало
print ( "Сумма:" , total)
total = 0 SyntaxError: invalid syntax в справочнике
SyntaxError : unmatched ')' ссылка лишняя закрывающая скобка )
Закрывающая скобка ) стоит там, где открытой скобки уже нет.
частые причины
Скобка продублирована при правке. Открывающая скобка удалена, а закрывающая осталась. как починить
Удали лишнюю ) или верни открывающую скобку.
SyntaxError: invalid syntax в справочнике
SyntaxError : closing parenthesis ']' does not match opening parenthesis '(' ссылка закрывающая скобка ] не соответствует открывающей (
Скобки перепутаны: открыта (, а закрыта ].
частые причины
Список, кортеж и вызов функции вложены друг в друга, и порядок закрытия сбился. как починить
Закрывай скобки в обратном порядке открытия: последняя открытая закрывается первой.
было
total = sum ([ 1 , 2 , 3 )] стало
total = sum ([ 1 , 2 , 3 ]) SyntaxError: invalid syntax в справочнике
SyntaxError : f-string: single '}' is not allowed ссылка f-строка: одиночная } не допускается
Внутри f-строки фигурные скобки открывают выражение, поэтому одна } без пары запрещена.
частые причины
Литеральная скобка в тексте f-строки. Выражение {...} закрыто дважды. как починить
Чтобы вывести саму скобку, удвой её: {{ и }}.
было
print ( f "Словарь: {d}} " ) стало
print ( f "Словарь: {d} " ) f-строки в справочнике
SyntaxError : f-string: expecting '}' ссылка f-строка: ожидалась закрывающая }
Выражение в f-строке открыто скобкой {, а закрывающей } нет.
частые причины
Забыта } после имени переменной. Внутри выражения стоят кавычки того же вида, что и у всей строки. как починить
Закрой каждое {выражение} и не используй внутри него те же кавычки, что снаружи.
было
print ( f "Привет, {name ") стало
print ( f "Привет, {name} " ) f-строки в справочнике
SyntaxError : f-string: invalid syntax ссылка f-строка: неверный синтаксис внутри выражения
Код внутри {} f-строки не разбирается: это обычное выражение Python, и ошибка в нём.
частые причины
Внутри {} стоит присваивание или двоеточие без формата. Кавычки внутри выражения совпали с кавычками строки. Внутри {} оказался текст, а не выражение. как починить
Вынеси сложное выражение в переменную перед f-строкой и подставь её имя.
было
print ( f "Итог: {total = 5 } " ) стало
total = 5
print ( f "Итог: {total} " ) f-строки в справочнике
SyntaxError : f-string: invalid conversion character: expected 's', 'r', or 'a' ссылка f-строка: недопустимый символ преобразования, ожидались s, r или a
Восклицательный знак внутри {} Python читает как начало преобразования !r, !s или !a, а дальше стоит что-то другое.
частые причины
Сравнение != внутри f-строки без пробелов в старых версиях Python. Лишний ! перед закрывающей скобкой. как починить
Вынеси сравнение в переменную до f-строки или поставь пробелы вокруг !=.
стало
differ = a != b
print ( f " {differ} " ) f-строки в справочнике
SyntaxError : cannot assign to literal here. Maybe you meant '==' instead of '='? ссылка нельзя присвоить значение литералу. Может быть, ты имел в виду ==?
Слева от = стоит число или строка, а присваивать можно только имени.
частые причины
Перепутан порядок: 5 = x вместо x = 5. В условии написано = вместо ==. как починить
В присваивании имя слева, значение справа. В сравнении используй ==.
SyntaxError: invalid syntax в справочнике
SyntaxError : cannot assign to function call here. Maybe you meant '==' instead of '='? ссылка нельзя присвоить значение вызову функции. Может быть, ты имел в виду ==?
Слева от = стоит вызов функции, а результат вызова изменить нельзя.
частые причины
len(items) = 0 вместо сравнения.Попытка «записать» значение через функцию вместо переменной. как починить
Сравнивай через ==, а сохраняй результат в переменную: count = len(items).
стало
if len (items) == 0 : SyntaxError: invalid syntax в справочнике
SyntaxError : unexpected character after line continuation character ссылка неожиданный символ после символа переноса строки \
Обратный слэш \ вне строки означает перенос на следующую строку, поэтому после него ничего стоять не может.
частые причины
Код скопирован из чата или JSON с экранированными кавычками: print(\"Привет\"). Путь Windows написан без кавычек. После \ в конце строки стоит пробел или комментарий. как починить
Убери \ перед кавычками. Пути пиши строкой: "C:\\data" или r"C:\data".
SyntaxError: invalid syntax в справочнике
SyntaxError : 'return' outside function ссылка return за пределами функции
return возвращает значение из функции, а эта строка в функцию не входит: скорее всего, у неё пропал отступ.
частые причины
return стоит на уровне файла, а не внутри def. Отступ тела функции потерян при копировании. как починить
Сдвинь return внутрь функции тем же отступом, что и остальное тело.
было
def double (x):
y = x * 2
return y стало
def double (x):
y = x * 2
return y функции в справочнике
SyntaxError : 'break' outside loop ссылка break за пределами цикла
break управляет циклом, а здесь стоит вне for и while.
частые причины
Отступ сбился, и строка выпала из тела цикла. break написан в if, который сам не внутри цикла. как починить
Убедись, что строка с break стоит внутри тела цикла по отступу.
циклы в справочнике
SyntaxError : invalid decimal literal ссылка неверная запись числа
Сразу после цифр идёт буква, и Python не может понять, число это или имя.
частые причины
Имя переменной начинается с цифры: 2nd = .... Единицы измерения приклеены к числу: 10px, 100руб. Пропущен оператор между числом и именем: 2x вместо 2 * x. как починить
Имена начинай с буквы, единицы храни отдельно, умножение пиши явно.
SyntaxError: invalid syntax в справочнике
SyntaxError : leading zeros in decimal integer literals are not permitted ссылка ведущие нули в десятичных числах не допускаются
Число вроде 007 Python не принимает: ноль в начале раньше означал восьмеричную запись.
частые причины
Дата или номер записаны числом с нулём впереди: 08, 007. как починить
Убери ведущие нули или храни значение строкой: "08".
SyntaxError: invalid syntax в справочнике
SyntaxError : unexpected EOF while parsing ссылка неожиданный конец файла при разборе
Файл закончился раньше, чем Python дочитал конструкцию: не хватает закрывающей скобки или тела блока.
частые причины
Не закрыта скобка в последних строках. После if, for или def в конце файла нет тела. как починить
Проверь последние строки: закрой скобки и допиши тело блока.
SyntaxError: invalid syntax в справочнике
SyntaxError : invalid syntax ссылка неверный синтаксис
Python не смог разобрать строку и не нашёл более точной подсказки. Стрелка ^ под строкой показывает, где он споткнулся, но причина часто на строке выше.
частые причины
Пропущено двоеточие после if, for, while, def или class. Не закрыта скобка или кавычка на предыдущей строке. Ключевое слово использовано как имя: class = 5, if = 3. Оператор пропущен или продублирован: x = = 5, a b. Пример из другого языка: else if, &&, ; в конце строки. как починить
Прочитай строку со стрелкой и одну строку над ней. Проверь двоеточия, парность скобок и кавычек, имена переменных.
SyntaxError: invalid syntax в справочнике
SyntaxError ссылка синтаксическая ошибка
Python не смог разобрать код до запуска. Текст после двоеточия уточняет, что именно не сошлось.
частые причины
Пропущен или лишний символ рядом со стрелкой ^. Конструкция из другого языка или из более новой версии Python. как починить
Сверь строку со стрелкой с примером из справочника по этой конструкции.
SyntaxError: invalid syntax в справочнике
IndentationError : unexpected indent ссылка неожиданный отступ
Строка сдвинута вправо, хотя предыдущая строка не открывала блок. Python не понимает, к чему относится этот отступ.
частые причины
Лишние пробелы в начале строки после копирования. Продолжение кода после блока не вернулось на прежний уровень. Пустая строка со случайными пробелами внутри функции. как починить
Выровняй строку по строке выше: тело блока на 4 пробела глубже заголовка, остальное на том же уровне.
IndentationError в справочнике
IndentationError : expected an indented block after 'if' statement on line 3 ссылка ожидался блок с отступом после if на строке 3
Заголовок if на строке 3 открыл блок, а тела с отступом после него нет.
частые причины
Тело блока написано без отступа. Блок пока пустой: заголовок есть, кода под ним нет. как починить
Сдвинь тело на 4 пробела вправо. Если блок пока пустой, напиши в нём pass.
было
if x > 0 :
print ( "плюс" ) стало
if x > 0 :
print ( "плюс" ) IndentationError в справочнике
IndentationError : expected an indented block after function definition on line 1 ссылка ожидался блок с отступом после объявления function на строке 1
После def или class на строке 1 должно идти тело с отступом.
частые причины
Тело функции написано без отступа. Функция объявлена, а тело ещё не написано. как починить
Сдвинь тело на 4 пробела. Для заглушки напиши pass или ....
было
def greet (name):
print (name) стало
def greet (name):
print (name) IndentationError в справочнике
IndentationError : unindent does not match any outer indentation level ссылка отступ не совпадает ни с одним внешним уровнем
Строка вернулась влево на уровень, которого нет: например, заголовок на 0 пробелов, тело на 4, а эта строка на 2.
частые причины
Смешаны табы и пробелы. Отступ набран вручную и не кратен уровню блока. как починить
Перенабери отступы в этом блоке только пробелами, по 4 на уровень. В редакторе включи показ пробелов.
IndentationError в справочнике
IndentationError ссылка ожидался блок с отступом
После заголовка блока Python ждал тело с отступом и не нашёл его.
частые причины
Тело блока без отступа. Пустой блок. как починить
Добавь отступ телу блока или напиши в нём pass.
IndentationError в справочнике
TabError ссылка непоследовательное использование табов и пробелов в отступах
В одном блоке часть строк сдвинута табами, часть пробелами. Для Python это разные отступы, даже если на экране они выглядят одинаково.
частые причины
Код собран из двух источников с разными настройками редактора. Часть строк набрана клавишей Tab, часть пробелами. как починить
Замени все табы на пробелы: в редакторе есть команда «преобразовать отступы».
IndentationError в справочнике