Что означает ошибка SyntaxError: invalid syntax

Что означает ошибка SyntaxError: invalid syntax

Когда Python не может разобраться в ваших командах

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

«Пусть у нас есть функция f(x,y) = xy, которая перемножает два аргумента и возвращает полученное значение».

Программист садится и пишет код:

a = 10
b = 15
result = 0
def fun(x,y): 
    return x y
result = fun(a,b)
print(result)

Но при выполнении такого кода компьютер выдаёт ошибку:

File "main.py", line 13
result = x y
^
❌ SyntaxError: invalid syntax

Почему так происходит: в каждом языке программирования есть свой синтаксис — правила написания и оформления команд. В Python тоже есть свой синтаксис, по которому для умножения нельзя просто поставить рядом две переменных, как в математике. Интерпретатор находит первую переменную и думает, что ему сейчас объяснят, что с ней делать. Но вместо этого он сразу находит вторую переменную. Интерпретатор не знает, как именно нужно их обработать, потому что у него нет правила «Если две переменные стоят рядом, их нужно перемножить». Поэтому интерпретатор останавливается и говорит, что у него лапки. 

Что делать с ошибкой SyntaxError: invalid syntax

В нашем случае достаточно поставить звёздочку (знак умножения в Python) между переменными — это оператор умножения, который Python знает:

a = 10
b = 15
result = 0
def fun(x,y): 
    return x * y
result = fun(a,b)
print(result)

В общем случае найти источник ошибки SyntaxError: invalid syntax можно так:

  1. Проверьте, не идут ли у вас две команды на одной строке друг за другом.
  2. Найдите в справочнике описание команды, которую вы хотите выполнить. Возможно, где-то опечатка.
  3. Проверьте, не пропущена ли команда на месте ошибки.

Практика

Попробуйте найти ошибки в этих фрагментах кода:

x = 10 y = 15
def fun(x,y): 
    return x * y
try:  
    a = 100
    b = "PythonRu"
    assert a = b
except AssertionError:  
    print("Исключение AssertionError.")
else:  
    print("Успех, нет ошибок!")

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

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

Вёрстка:

Кирилл Климентьев

Соцсети:

Олег Вешкурцев

Любишь Python? Зарабатывай на нём!
Изучите самый модный язык программирования и станьте крутым бэкенд-разработчиком. Старт — бесплатно.
Попробовать
Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём!
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Как работает шифрование в мессенджерах
Как работает шифрование в мессенджерах

Секретная переписка.

hard
Как учатся нейронки

Самое простое объяснение на картинках.

hard
Что внутри любого QR-кода
Что внутри любого QR-кода

Внимательно смотрим на чёрно-белые квадраты

medium
3D-аватары: как это работает
3D-аватары: как это работает

Разбираем на примере блогера CodeMiko.

easy
Как работает BitTorrent и почему пиратские торренты так сложно заблокировать
Как работает BitTorrent и почему пиратские торренты так сложно заблокировать

Конспект подкаста «Запуск завтра»

easy
WebStorm: это что и зачем?
WebStorm: это что и зачем?

Разбираем один из любимых редакторов кода всея Руси.

easy
Кто такой мидл и как им стать

Если вы это читаете, у вас больше шансов, чем у остальных.

easy
Сжатие без потерь: как это работает
Сжатие без потерь: как это работает

Когда копия не отличается от оригинала.

easy
Vue.js — конструктор для веб-приложений
Vue.js — конструктор для веб-приложений

Переходим на новый уровень программирования

medium
Карьерный путь: руководитель группы в лаборатории ИИ Сбера
Карьерный путь: руководитель группы в лаборатории ИИ Сбера

Разговор с Алексеем Васильевым: управление проектами, учёба в ШАД и разработка систем ИИ.

easy
easy