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

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

Разбор

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

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

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