Что произойдёт при выполнении кода if (n := 10) > 5: print(n)?
AУсловие не выполнится, потому что
:= не создаёт переменную nBБудет исключение
SyntaxError, так как присваивание внутри if запрещеноCУсловие выполнится:
n получит значение 10, и n > 5 будет TrueDПеременная
n получит значение True вместо 10 от результата сравненияПравильный ответ. Оператор
:= присваивает значение переменной и одновременно возвращает его для использования в выражении.Разбор
Моржовый оператор := (появился в 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()`?
- Все вопросы по «Синтаксис и типы данных» →