Ситуация: мы пишем программу на Python, где есть функция, которая проверяет, чётное число перед нами или нет. Логика простая: делим число на 2, и если остаток равен нулю, то оно чётное и мы возвращаем True (а если нет — False). Для получения остатка используем оператор % — он делит первое число на второе и возвращает остаток от деления.
Зная это, пишем функцию:
def check(a):
if a % 2 == 0
return True
else
return False
print(check(4))
Но при проверке с четвёркой мы получаем ошибку:
❌ SyntaxError: expected ':'
Странно, ведь мы использовали нужный оператор и проверили очевидно чётное число, тогда в чём дело?
Что это значит: Python ожидал, что в определённом месте программы будет стоять двоеточие, которого требует синтаксис языка. Компьютер при выполнении кода его не нашёл, остановил выполнение и сообщил о том, что ему не хватает.
Что делать с ошибкой SyntaxError: expected ':'
На самом деле здесь ошибка не в операторе взятия остатка от деления или в том, что мы проверяем заведомо чётное число. Всё гораздо проще. После условного оператора if с выражением должно идти двоеточие, которое скажет компьютеру: всё, проверка условия закончена, дальше идут какие-то действия.
Чаще всего двоеточие пропускают из-за спешки: хочется поскорее перенести мысль из головы в код и проверить идею на практике. Чтобы её исправить, нужно просто поставить двоеточие после условного оператора и после else — там оно тоже нужно.
Ставим пару двоеточий и убеждаемся, что теперь всё в порядке:
def check(a):
if a % 2 == 0:
return True
else:
return False
print(check(4))