Share This
Связаться со мной
Крути в низ
Categories
//Возврат нескольких значений из функции в Python

Возврат нескольких значений из функции в Python

16.12.2020Category : Python

Python позволяет вам возвращать из функции несколько значений. 

Для этого необходимо вернуть структуру данных, содержащую эти несколько значений. Например, список количества миль, которые надо пробежать за неделю.

def miles_to_run(minimum_miles):     week_1 = minimum_miles + 2     week_2 = minimum_miles + 4     week_3 = minimum_miles + 6     return [week_1, week_2, week_3]  print(miles_to_run(2)) # result: [4, 6, 8]

Структура данных — контейнер, хранящий однотипные данные. Эти данные могут быть возвращены из функций. В этой статье мы узнаем, как возвращать несколько значений из структур вроде кортежа, списка и словаря. 

Кортежи

Кортеж — упорядоченная, неизменяемая последовательность. То есть, значения внутри кортежа мы изменять не можем. 

Мы можем использовать кортеж, например, для хранения информации о человеке (о его имени, возрасте, месте жительства). 

nancy = ("Нэнси", 55, "Чикаго")

Пример функции, которая возвращает кортеж:

def person():     return "Боб", 32, "Бостон"   print(person()) # result: ('Боб', 32, 'Бостон')

Заметьте, что в предложении return мы не использовали круглые скобки для возврата значения. Это потому, что кортеж можно вернуть, просто отделив каждый элемент запятой, как в нашем примере. 

«Кортеж образуют запятые, а не круглые скобки» — так написано в документации. Но для создания пустых кортежей круглые скобки необходимы. Также это помогает избежать путаницы.

Пример функции, которая использует () для возврата кортежа: 

def person(name, age):     return (name, age) print(person("Генри", 5)) #result: ('Генри', 5)

Список

Список — упорядоченная, изменяемая последовательность. Элементы списка можно изменять. 

Список с городами: 

cities = ["Бостон", "Чикаго", "Джексонвилл"]

Или с оценками: 

test_scores = [55, 99, 100, 68, 85, 78]

Взгляните на функцию ниже. Она возвращает список, содержащий десять чисел. 

def ten_numbers():     numbers = []     for i in range(1, 11):         numbers.append(i)     return numbers   print(ten_numbers()) #result: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Еще один пример. В этот раз мы передаем несколько аргументов в функцию.

def miles_ran(week_1, week_2, week_3, week_4):     return [week_1, week_2, week_3, week_4]   monthly_mileage = miles_ran(25, 30, 28, 40) print(monthly_mileage) #result: [25, 30, 28, 40]

Спутать кортеж со списком довольно просто. Все-таки обе структуры хранят несколько значений. Важно запомнить ключевые отличия: 

  • Кортежи изменять нельзя. 
  • Списки изменять можно. 

Словари

Словарь — структура, в которой хранятся пары значений в виде «ключ-значение». Заключены эти значения в фигурные скобки {}. Каждому ключу соответствует свое значение.

Рассмотрим пример. В следующем словаре содержатся имена сотрудников. Имя сотрудника — ключ, его должность — значение. 

employees = {     "Джек": "Инженер",     "Мэри": "Менеджер",     "Генри": "Писатель", }

Пример функции, возвращающей словарь в виде «ключ-значение».

def city_country(city, country):     location = {}     location[city] = country     return location   favorite_location = city_country("Бостон", "США") print(favorite_location) # result: {'Бостон': 'США'}

В примере выше «Бостон» — ключ, а «США» — значение. 

Мы проделали долгий путь… Подытожим — вы можете вернуть несколько значений из функции и существует несколько способов сделать это.

  • 5 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close