Зачем нужен return в функциях
Перейти к содержимому

Зачем нужен return в функциях

  • автор:

Оператор return (C++)

Завершает выполнение функции и возвращает элемент управления в вызывающую функцию (или в операционную систему при передаче управления из функции main ). Выполнение возобновляется в вызывающей функции в точке сразу после вызова.

Синтаксис

return [expression]; 

Замечания

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

Значение предложения expression возвращается в вызывающую функцию. Если выражение пропущено, то возвращаемое значение функции не определено. Конструкторы и деструкторы и функции типа void не могут указывать выражение в инструкции return . Функции всех остальных типов должны указывать выражение в инструкции return .

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

Функция может иметь любое количество return операторов.

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

Пример

// return_statement2.cpp #include int max ( int a, int b ) < return ( a >b ? a : b ); > int main()

Зачем нужен 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 = 8 print(f"result2 = ") # result2 = 10

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

def sum(a, b): return a + b result = sum(4, 6) # result = 0 print(f"sum(4, 6) = ") # sum(4, 6) = 10 print(f"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: Age: ") print_person("Tom", 22) print_person("Bob", -102)

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

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

Name: Tom Age: 22 Invalid age

Почему функция «возвращает» значение?

Почему функция «возвращает» значение? главное изображение

Изучающие программирование часто удивляются: почему функция «возвращает» результат? Почему именно такое странное слово — «возврат»? Как будто мы сначала даём ей результат, а потом она его возвращает обратно.

Понятно, что это не так. Мы даём функции аргументы (а иногда и вообще не даём ничего), а она даёт нам в ответ какую-то информацию… А иногда не даёт! Тогда мы говорим «она ничего не возвратила».

Дело в том, что return означает не возврат информации, а возврат управления.

При вызове функции текущий код становится на паузу и передаёт управление в функцию. Функция делает свои дела и возвращает управление в то место, где происходил вызов. И заодно может отправить какую-то информацию туда.

Что за управление? Управление той штукой, которая исполняет код. Грубо говоря — управление компьютером. Код передаёт функции пульт управления компьютером, а функция потом возвращает его обратно.

const sum = (a, b) =>  const answer = a + b; return answer; > 

Мы привыкли читать подобный код как «функция возвращает значение answer », но правильнее будет читать «функция возвращает управление в место вызова и отправляет туда значение answer».

Именно поэтому внутри функции возможен такой код:

. return; . 

Здесь функция не «возвращает ничего», а «возвращает управление в место вызова и не отправляет туда никакую информацию».

function return

Конечно, такая формулировка хоть и технически более корректна, в реальной жизни нет смысла отказываться от «возвращает значение». Это, можно сказать, общепринятое сокращение.

Полезная информация Начните изучать разработку с бесплатного курса «Основы современной вёрстки». Вы научитесь создавать статические веб-страницы, стилизовать элементы, использовать редакторы кода с полезными расширениями. В конце курса вы опубликуете свой первый сайт на GitHub Pages.

Что такое return в Python?

Оператор return используется в функциях для возвращения данных после выполнения работы самой функции.

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

def some_test(a, b, c): # Функция с 3 параметрами return a + b + c # Функция возвращает результат суммы чисел res = some_test(4, 6, 1) print(res)

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

Оператор return не только завершает выполнение функции, но и передает значение обратно в вызывающий код. Если в функции отсутствует оператор return или он используется без значения, функция вернет None.

def greet(name): print("Привет, " + name + "!") result = greet("Анна") print("Результат функции:", result) # Вывод: # Привет, Анна! # Результат функции: None

Комментарии (11)

Fo_xy_z 08 декабря 2023 в 16:19

Ну то есть как я понял, с помощью return ты просто сохраняешь значение
Пример:
```python
def Plus(a, b): # - Создаем функцию которая прибавляет b к a (a+b)
otvet = a+b # - Пишем то что otvet равен a+b
return otvet # - Сохраняем ответ в переменной otvet
A = Plus(2, 5) # - записываем ответ в переменную "A"
Print(A) # - Выведет 5 (2+5 или то что написали в скобках в предыдущей строке)```

Tim 11 октября 2023 в 04:48

Смотри более понятнее,
Есть два вида функций
Первый это как print() она выводит то что в ней написано и не делает что-то более, и не имеет в себе значений,
Второй вид функций это к примеру как input() она выполняет команду спросить и может хранить в себе какое-то значение, к примеру ты же не можешь в переменную запихнуть print потомучто функция print делает только действие, и не может хранит в себе какое-то значение которое может поместить в переменную, а к примеру с input когда эта функция задает тебе вопрос в консоли, то ты написав ей ответ, то в input задаётся значение то которое ты написал в ответе, и это можно использовать в переменных. Если под итожить то когда есть return в функции, то эта функция может хранить в себе какое-то значение, а если нет return, то функция выполняет какое-то действие и не более.

Tim 11 октября 2023 в 05:00

1. **Функции без `return` (подобно `print()`):**
- Они выполняют какое-то действие, но не возвращают значения, которые можно сохранить в переменной.
- Просто выводят информацию на экран или выполняют какие-то действия, но не предоставляют результат, который можно использовать далее в программе.

greet("Анна") # Эта функция выводит приветствие, но не возвращает значение.
```

2. **Функции с `return` (подобно `input()`):**
- Они выполняют какое-то действие, но также возвращают значение, которое можно сохранить в переменной и использовать далее.
- Возвращенное значение может быть использовано для присваивания переменным или в выражениях.

Пример:
```python
def add(a, b):
result = a + b
return result # Эта функция возвращает сумму a и b.

sum_result = add(3, 5) # Результат функции сохраняется в sum_result.
print(sum_result) # Выведет 8
```

Ваши пояснения о том, как функции работают, в целом верны. Функции с `return` могут хранить возвращенные значения, которые затем можно использовать в вашей программе.

дреш 05 сентября 2023 в 08:57

если человеческим языком, то вызывая функцию, ты запрашиваешь от неё ответ, возвращение значения=ответ на вызов функции
ты прописал функцию (спросил у неё)
она вернула значения (ответила)

Александр 25 июня 2023 в 12:44

Добавить комментарий

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