Деконструкция строки с применением оператора *

Будет напечатано ['t', 'e', 'p', 'i']. x получает первый символ 's', z — последний 'k', а звёздочная переменная y собирает все промежуточные символы в список.

Короткий ответ

Что ответить на собеседовании

Будет напечатано ['t', 'e', 'p', 'i']. x получает первый символ 's', z — последний 'k', а звёздочная переменная y собирает все промежуточные символы в список.

Подробный разбор

Ответ с пояснениями

Условие

В примере показан фрагмент Python‑кода, где строка разбивается на отдельные элементы с помощью оператора *. Строка 'stepik' распределяется между переменными x, y и z, после чего выводится значение переменной y. Укажите, какой вывод появится на экране. Варианты ответа:

  • epik
  • epi
  • ['e', 'p', 'i', 'k']
  • ['t', 'e', 'p', 'i']
  • произойдет ошибка
  • ['s', 't', 'e', 'p']
x, *y, z = 'stepik'
print(y)

Ответ

Будет напечатано ['t', 'e', 'p', 'i']. x получает первый символ 's', z — последний 'k', а звёздочная переменная y собирает все промежуточные символы в список.

Расширенная распаковка работает с любым подходящим итерируемым объектом, включая строку:

x, *y, z = 'stepik'
# x == 's'
# y == ['t', 'e', 'p', 'i']
# z == 'k'

Результат y — именно список, не строка. Для строки из двух символов он был бы пустым. Если элементов меньше двух, возникнет ValueError, потому что обязательным x и z не хватит значений.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее