Да, в Python можно вернуть несколько значений из функции. Это достигается за счет использования кортежей (tuples).
Когда функция возвращает несколько значений, они автоматически упаковываются в кортеж. При вызове функции, можно получить этот кортеж целиком или распаковать его отдельные элементы в разные переменные.
Пример:
def get_name_and_age():
name = "Alice"
age = 30
return name, age # Возвращаем кортеж (name, age)
# Первый способ: получаем кортеж
result = get_name_and_age()
print(result) # Выведет: ('Alice', 30)
print(result[0]) # Выведет: Alice
print(result[1]) # Выведет: 30
# Второй способ: распаковываем кортеж в переменные
name, age = get_name_and_age()
print(name) # Выведет: Alice
print(age) # Выведет: 30
Дополнительные моменты:
Пример с *:
def get_data():
return 1, 2, 3, 4, 5
first, second, *rest = get_data()
print(first) # Выведет: 1
print(second) # Выведет: 2
print(rest) # Выведет: [3, 4, 5]
Таким образом, возможность возврата нескольких значений делает код более читабельным и лаконичным, особенно когда нужно получить несколько связанных результатов из функции.