← Все вопросы

Почему if x = 5 выдаёт ошибку?

Задан 2 месяца назад1.3к просмотров3 ответа
14

Пишу проверку:

if x = 5:
    print('пять')

А питон ругается SyntaxError. Что не так?

3 ответа

25
✓ Принятый ответ — помог автору

Ты перепутал присваивание и сравнение.

  • = — это присваивание (положить значение в переменную).
  • == — это сравнение (проверить равенство).

В условии нужно сравнение:

if x == 5:
    print('пять')

Кстати, это специально сделано: в Python нельзя случайно написать = вместо == в условии — он выдаст синтаксическую ошибку сразу, а не молча присвоит. В Си, например, if (x = 5) компилируется и порождает багу, а тут ты защищён.

(Отдельно есть «морж» := для присваивания внутри выражения, но это другая история и в обычном if он тебе сейчас не нужен.)

Диана Герасимова точно, == забыл. спасибо, дошло 🙏 · 2 месяца назад
11

Для сравнения нужно ==, а = — это присваивание.

4

if x == 5:

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект