Что произойдёт при выполнении кода if (n := 10) > 5: print(n)?

AУсловие не выполнится, потому что := не создаёт переменную n
BБудет исключение SyntaxError, так как присваивание внутри if запрещено
CУсловие выполнится: n получит значение 10, и n > 5 будет True
DПеременная n получит значение True вместо 10 от результата сравнения
Правильный ответ. Оператор := присваивает значение переменной и одновременно возвращает его для использования в выражении.

Разбор

Моржовый оператор := (появился в Python 3.8) позволяет присвоить значение переменной прямо внутри выражения. В данном примере n получает значение 10, затем это значение сравнивается с 5. Условие 10 > 5 истинно, поэтому выполнится print(n), который выведет 10. Обычное = внутри if вызвало бы SyntaxError.

Проверь себя · 1/3разбор после ответа
Что вернёт выражение "b" in ["a", "b", "c"]?
Тренировать Python в Telegram

Ещё вопросы по теме «Синтаксис и типы данных»