Найти тему
Удалёнка

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

Оглавление

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

Функция может возвращать результат. Для этого в функции используется оператор 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

Наука
7 млн интересуются