Что произойдёт при выполнении кода if (n := 10) > 5: print(n)?
AУсловие не выполнится:
:= не создаёт переменную n внутри выражения if (n := 10)BУсловие выполнится:
n получит 10, сравнение n > 5 даст True, выведется 10CБудет исключение
SyntaxError: присваивание := внутри блока if запрещено в PythonDПеременная
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"]?Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →