Что выведет этот код?


def coords():
    return 1, 2

x, y = coords()
print(x, y)

Функция coords() возвращает кортеж (1, 2).

Операция распаковки кортежа (tuple unpacking) x, y = coords() присваивает x значение 1, а y значение 2.

Функция print(x, y) выводит на консоль значения переменных x и y, разделенные пробелом.

Вывод: 1 2


Задача:


def coords():
    return 1, 2

x, y = coords()
print(x, y)
  

Объяснение:

Этот код демонстрирует распаковку кортежа (tuple) в Python. Функция coords() возвращает кортеж, содержащий два элемента: 1 и 2.

Строка x, y = coords() выполняет распаковку. Это означает, что первый элемент кортежа, возвращенного coords(), присваивается переменной x, а второй элемент присваивается переменной y.

Таким образом, после выполнения этой строки x будет иметь значение 1, а y будет иметь значение 2.

Строка print(x, y) выводит значения переменных x и y, разделенные пробелом.

Ожидаемый вывод:

1 2

Важные моменты для собеседования:

  • Распаковка кортежей/списков: Подчеркните, что вы понимаете, как работает распаковка и что количество переменных слева от знака равенства должно соответствовать количеству элементов в кортеже/списке справа. Если количество не совпадает, Python выдаст ошибку ValueError: too many values to unpack или ValueError: not enough values to unpack.
  • Возврат множественных значений: Объясните, что Python позволяет функциям возвращать несколько значений, упакованных в кортеж.
  • Альтернативные способы: Упомяните, что можно было бы получить значения и другим способом, например: result = coords(); x = result[0]; y = result[1], но распаковка кортежа является более элегантным и питоническим способом.
  • Применимость: Приведите примеры, когда распаковка может быть полезна, например, при работе с координатами, возвращаемыми API, или при обмене значениями переменных (x, y = y, x).
0