Оператор return и возвращение результата из функции

Последнее обновление: 16.01.2022

Возвращение результата

Функция может возвращать результат. Для этого в функции используется оператор return, после которого указывается возвращаемое значение:

def имя_функции ([параметры]):
    инструкции
    return возвращаемое_значение

Определим простейшую функцию, которая возвращает значение:

def get_message():
    return "Hello METANIT.COM"

Здесь после оператора return идет строка "Hello METANIT.COM" - это значение и будет возвращать функция get_message().

Затем это результат функции можно присвоить переменной или использовать как обычное значение:

def get_message():
    return "Hello METANIT.COM"


message = get_message()  # получаем результат функции get_message в переменную message
print(message)          # Hello METANIT.COM

# можно напрямую передать результат функции get_message
print(get_message())    # Hello METANIT.COM

После оператора return может идти и сложное вычислямое выражение, результат которого будет возвращаться из функции. Например, определим функцию, которая увеличивает число в два раза:

def double(number):
    return 2 * number

Здесь функция double будет возвращать результат выражения 2 * number:

def double(number):
    return 2 * number

result1 = double(4)     # result1 = 8
result2 = double(5)     # result2 = 10
print(f"result1 = {result1}")   # result1 = 8
print(f"result2 = {result2}")   # result2 = 10

Или другой пример - получение суммы чисел:

def sum(a, b):
    return a + b


result = sum(4, 6)                  # result = 0
print(f"sum(4, 6) = {result}")      # sum(4, 6) = 10
print(f"sum(3, 5) = {sum(3, 5)}")   # sum(3, 5) = 8

Выход из функции

Оператор return не только возвращает значение, но и производит выход из функции. Поэтому он должен определяться после остальных инструкций. Например:

def get_message():
    return "Hello METANIT.COM"
    print("End of the function")

print(get_message())

С точки зрения синтаксиса данная функция корректна, однако ее инструкция print("End of the function") не имеет смысла - она никогда не выполнится, так как до ее выполнения оператор return возвратит значение и произведет выход из функции.

Однако мы можем использовать оператор return и в таких функциях, которые не возвращают никакого значения. В этом случае после оператора return не ставится никакого возвращаемого значения. Типичная ситуация - в зависимости от опеределенных условий произвести выход из функции:

def print_person(name, age):
    if age > 120 or age < 1:
        print("Invalid age")
        return
    print(f"Name: {name}  Age: {age}")


print_person("Tom", 22)
print_person("Bob", -102)

Здесь функция print_person в качестве параметров принимает имя и возраст пользователя. Однако в функции вначале мы проверяем, соответствует ли возраст некоторому диапазону (меньше 120 и больше 0). Если возраст находится вне этого диапазона, то выводим сообщение о недопустимом возрасте и с помощью оператора return выходим из функции. После этого функция заканчивает свою работу.

Однако если возраст корректен, то выводим информацию о пользователе на консоль. Консольный вывод:

Name: Tom  Age: 22
Invalid age
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850