Что означает ошибка SyntaxError: invalid syntax. Perhaps you forgot a comma?
easy

Что означает ошибка SyntaxError: invalid syntax. Perhaps you forgot a comma?

Самая простая ошибка в Python

Ситуация: мы пишем программу для обработки списка сотрудников, чтобы эйчарам было проще работать. Один из фрагментов кода должен выводить имена и возраст сотрудников и точно писать имя с большой буквы независимо от того, как оно записано в базе. Звучит просто, код тоже получился несложный:

# список сотрудников
employees = {"Аня" 30,
             "женя": 28}
# перебираем список и выводим по очереди для каждого имя и возраст
for name, age in employees.items():
    print(f"{name.capitalize()} — {age} лет.")

Но при запуске этого кода мы получаем ошибку:

❌ SyntaxError: invalid syntax. Perhaps you forgot a comma?

Что это значит: Python не разобрался в синтаксисе нашего кода и не понял, как ему работать с тем, что мы написали. Но интерпретатор предположил, что мы что-то пропустили в этом месте, например запятую.

Что делать с ошибкой SyntaxError: invalid syntax. Perhaps you forgot a comma?

Когда возникает такая ошибка, то почти всегда это означает, что мы пропустили какой-то знак при объявлении переменной или во время работы с ней. Python точно не знает, что именно мы пропустили, поэтому разработчики в текст ошибки добавили запятую — её пропускают чаще всего.

Также Python сразу показывает, где именно ошибка, чтобы программисту было проще разобраться, что же там не так и что он мог пропустить:

Что означает ошибка SyntaxError: invalid syntax. Perhaps you forgot a comma?

В нашем случае мы пропустили не запятую, а двоеточие. Дело в том, что переменную employees мы используем как словарь, а в словарях есть чёткий синтаксис — ключ: значение. Это значит, что между двумя этими частями ставится двоеточие, и если этого не сделать, то будет ошибка.

Чтобы исправить ошибку SyntaxError: invalid syntax. Perhaps you forgot a comma? в нашем случае нужно поставить недостающее двоеточие в первой паре словаря:

# список сотрудников
employees = {"Аня": 30,
             "женя": 28}
# перебираем список и выводим по очереди для каждого имя и возраст
for name, age in employees.items():
    print(f"{name.capitalize()} — {age} лет.")

Если хотите лучше разобраться в словарях, кортежах и других структурах данных в Python, почитайте наши статьи — там мы подробно разбираем всё на примерах с кодом:

А с какой ошибкой в Python вы сталкиваетесь чаще всего? Поделитесь в комментариях.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Климентьева

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy