Что произойдёт при выполнении кода 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.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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