Пусть a = 'привет', b = 'мир'. Что произойдёт после выполнения a, b = b, a?
AПеременные поменяются местами:
a станет 'мир', а b станет 'привет'BБудет исключение
TypeError: строки нельзя обменивать через распаковку a, b = b, aCОбе переменные станут
'мир': правый b присвоится в a первым по порядкуDОбе переменные станут
'привет': левый a присвоится в b первым по порядкуПравильный ответ. Запись
a, b = b, a использует кортежную распаковку и одновременно меняет значения переменных.Разбор
Python сначала вычисляет всю правую часть выражения b, a — создаёт кортеж ('мир', 'привет'). Затем распаковывает его в левую часть: a получает 'мир', b получает 'привет'. Промежуточная переменная не нужна, и порядок «слева направо» здесь не работает: правая часть берётся целиком до присваивания. Это работает с любыми типами данных, не только со строками.
Проверь себя · 1/3разбор после ответа
Что вернёт
sorted(['слон', 'як', 'кот'], key=len)?Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →