Оператор return в Python: что это и как он работает
2026-02-21 03:59 Diff

#статьи

  • 25 авг 2025
  • 0

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

Иллюстрация: Оля Ежак для Skillbox Media

Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.

Эта статья для тех, кто только начинает изучать Python и уже встречал ключевое слово return в функциях. Вы можете представить функцию как повара, а return — как момент, когда тот подаёт приготовленное блюдо клиенту.

У оператора return в Python есть три главные особенности: он возвращает значение, прерывает выполнение функции и позволяет использовать результат её работы. В статье мы разберём, как это работает. Рекомендуем  установить Python, выбрать удобный редактор и повторять примеры за нами.

Содержание

В Python любая функция всегда что-то возвращает. Если в ней явно не указан оператор return, результатом будет специальное значение None, которое означает «ничего» или «отсутствие значения». Посмотрим на примере:

def say_hello(): print("Привет!") print(say_hello()) # Сначала выведет «Привет!», а затем None

Функция say_hello() печатает текст, но не возвращает значения, поэтому после её вызова мы видим None. Когда добавим return, результат изменится — функция будет возвращать строку Привет!, которая и выведется на экран:

def say_hello(): return "Привет!" print(say_hello()) # Привет!

Ещё раз: print() просто выводит что-то на экран, а return передаёт результат наружу из функции. Можно представить так: print() — это будто вы говорите ответ вслух и он сразу исчезает. А return — это как записать ответ на бумаге и передать его дальше: можно работать с этим значением, сохранять его или использовать в других вычислениях. Подробнее об этом поговорим далее.

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

def add(a, b): return a + b print(add(3, 5)) # 8 def is_even(number): return number % 2 == 0 print(is_even(4)) # True print(is_even(7)) # False

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

def get_person(): name = "Алекс" age = 30 return name, age # Возвращаем сразу два значения person = get_person() print(person) # Показываем результат функции: ('Алекс', 30) print(type(person)) # Убеждаемся, что результат — кортеж (tuple)

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

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

def get_numbers(a, b, c): # Возвращаем список из переданных значений return [a, b, c] numbers = get_numbers(10, 20, 30) print(numbers) # [10, 20, 30] print(type(numbers)) # <class 'list'> numbers.append(40) # Добавляем новое число print(numbers) # [10, 20, 30, 40]

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

def example(): print("Строка 1") return print("Строка 2") print("Строка 3") example() # Строка 1

Наша функция успела выполнить только первую строку. Теперь переставим return в конец, и функция сможет выполнить все инструкции перед ним:

def example(): print("Строка 1") print("Строка 2") print("Строка 3") return example() # Строка 1 # Строка 2 # Строка 3

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

def check_number(num): if num < 0: return "Число отрицательное" if num == 0: return "Это ноль" return "Число положительное" print(check_number(-5)) # Число отрицательное print(check_number(0)) # Это ноль print(check_number(7)) # Число положительное

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

Внутри функции вы будете часто создавать переменные, которые существуют только в её локальной области видимости. К таким переменным нельзя обратиться за пределами функции, однако оператор return позволяет передавать вычисленное значение наружу — туда, откуда вызвана функция.

Для наглядности напишем функцию, которая будет вычислять площадь круга. Но сначала вместо return используем print() и сохраним результат:

import math def circle_area(radius): area = math.pi * radius ** 2 print(round(area)) result = circle_area(5) print(result) # Сначала выведет 79, затем None

Внутри функции мы рассчитали площадь и вывели её на экран с помощью print(). Однако сама функция ничего не вернула, поэтому в переменной result оказалось значение None. Так Python ведёт себя всегда, если в коде нет оператора return. Теперь давайте его добавим и перепишем пример:

import math def circle_area(radius): area = math.pi * radius ** 2 return round(area) result = circle_area(5) print(result) # 79 print(result * 2) # 158

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

Python для всех

Вы освоите Python на практике и создадите проекты для портфолио — телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер — руководитель отдела разработки в «Сбере».

Пройти бесплатно

Бесплатный курс по разработке на Python ➞
Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер — руководитель отдела разработки в «Сбере». Пройти курс