Что делает return в питоне простыми словами
Перейти к содержимому

Что делает return в питоне простыми словами

Как работает функция return в Python?

Оператор return возвращает значение указанное после него, например return 10 вернет 10 .

Пример 1

def example(): return 10 x = example() print(x) # Output 10 

Если указано несколько значений, например return 10, ‘123’ , то вернется кортеж (10, ‘123’)

Пример 2

def example(): return 10, '123' x = example() print(x) # Output (10, '123') 

Пример 3

def example(): return (10, '123') x = example() print(x) # Output (10, '123') 

В случае, когда оператор return не указан в теле функции или указан без значения, тогда вернется значение None

Пример 4

def example(): return x = example() print(x) # Output 

Пример 5

def example(): pass x = example() print(x) # Output 

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

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

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

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

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

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

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

Что такое функции в Python

Функция — это именованный участок кода. Иначе говоря, мы выделяем какой-то кусок нашего кода и даём ему имя.

print('Привет!') # Привет! 

Функция print() выводит на экран нашу строку “Привет!”. Мы не знаем как она это делает, но мы точно знаем что именно произойдёт. Где-то далеко-далеко в питоне какой-то программист написал код этой функции, и вы пользуетесь ею даже не вникая как именно он текст выводиться в терминал.

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

Функции нужны, чтобы логику их работы можно было использовать в разных местах программы, не переписывая код заново.

Давайте решим простую задачу: у вас есть магазин продуктов. Вы хотите продавать в нём молоко по 100 рублей за бутылку. Но при этом вы ещё должны платить 20% от стоимости проданных товаров в налоговую. Этот налог называется НДС, вы наверняка видели его в чеках. Вопрос: какую цену поставить в ценник, чтобы после уплаты налогов вы получали по 100 рублей за бутылку?

Вот фрагмент кода, который решает эту задачу:

# Хотим посчитать цену с НДС для пачки молока milk_price = 100 vat_rate = 20 # VAT — НДС, 20% — ставка НДС в России. vat = milk_price * vat_rate / 100 # Налог milk_price_with_vat = milk_price + vat # Цена с налогом print(milk_price_with_vat) # 120 рублей 

А теперь вспоминаем, что в магазине помимо молока есть ещё макароны. Пишем аналогичный код для расчёта ценника макарон:

spaghetti_price = 150 vat_rate = 20 vat = spaghetti_price * vat_rate / 100 spaghetti_price_with_vat = spaghetti_price + vat print(spaghetti_price_with_vat) # 180 рублей 

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

  1. Если изменится размер НДС, код придётся править уже в двух местах
  2. Если допустили ошибку при расчёте, то её тоже придётся исправлять в двух разных местах
  3. Новой логики не добавляется, а кода становится больше
  4. Представьте сколько товаров в магазине! И для каждого нужно 5 строчек.

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

def get_price_with_vat(price): vat_rate = 20 vat = price * vat_rate / 100 price_with_vat = price + vat return price_with_vat milk_price_vat = get_price_with_vat(100) # 120 spaghetti_price_vat = get_price_with_vat(150) # 180 

Весь код по подсчёту цены с НДС спрятан в функцию get_price_with_vat . Остаётся только подставлять в неё разные числа и получать готовые ценники для разных товаров.

Теперь давайте посмотрим как написать свою функцию. Разберём get_price_with_vat по частям:

Сигнатура

Сигнатура функции пишется в самом начале. Она состоит из:

  1. Ключевого слова def , которое говорит питону о том, что здесь мы начинаем писать новую функцию.
  2. Названия функции.
  3. Параметров, иначе говоря входных данных, необходимых для работы функции.

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

Тело функции

Здесь всё просто: это тот код, который мы хотим поместить в функцию. Обратите внимание, код тела функции мы пишем с отступом от левого края строки. В питоне принято таким образом помечать какой код относится к функции, а какой — нет. Это правило установлено на уровне языка, поэтому если отступов не сделать — программа сломается. В дальнейшем, вы ещё встретитесь с отступами. Размер одно отступа — 4 пробела.

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

 def get_price_with_vat(price): vat_rate = 20 vat = price * vat_rate / 100 price_with_vat = price + vat return price_with_vat get_price_with_vat(100) print(vat_rate) # NameError: name 'vat_rate' is not defined 

И это логично, ведь нам не нужны промежуточные вычисления, важен только результат. А чтобы результат работы был доступен вне функции, его надо “вернуть”.

Возвращаемое значение

Для возврата желаемого значения во внешний мир, используется ключевое слово return :

def get_price_with_vat(price): vat_rate = 20 vat = price * vat_rate / 100 price_with_vat = price + vat return price_with_vat # price_with_vat равно 120 result = get_price_with_vat(100) print(result) # 120 

На самом деле, функции всегда возвращают какое-то значение, даже если в ней не написан return . Для таких случаев, в питоне есть специальный тип данных — None , который нужен чтобы описать “тут ничего нет”. Сравните с предыдущим примером:

 def get_price_with_vat(price): vat_rate = 20 vat = price * vat_rate / 100 price_with_vat = price + vat # тут удалили строку result = get_price_with_vat(100) print(result) # None 

Функция len() всегда возвращает длину переданного ей параметра, а функция print() — возвращает None. Из функции можно вернуть несколько значений, для этого перечислить их все через запятую:

def get_vat_and_price_with_vat(price): vat_rate = 20 vat = price * vat_rate / 100 price_with_vat = price + vat return vat, price_with_vat vat, price = get_vat_and_price_with_vat(100) print(vat) # 20 print(price) # 120 

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

 def return_interrupt_example(): print('Это фраза всегда будет печататься на экране') somevalue = 1000 return somevalue print('А эта - никогда') return_interrupt_example() 

Такое поведение позволяет программисту контролировать написанные функции и останавливать их выполнение в нужный момент.

Что ещё почитать

  • Что такое функции и аргументы
  • Больше функций
  • Понятные названия

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Оператор return в Python: возврат значений из функции

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

Синтаксис оператора возврата:

def funtion_name(): statements . . . return [expression]
def adding(x, y): i = x + y return i result = adding(16, 25) print(f'Output of adding(16, 25) function is ')

Программа 1

def adding(a, b): # this function is return the value of(a + b) return a + b def boolean_function(a): # this function is return the Boolean value return bool(a) # calling function flag = adding(2, 3) print("Output of first function is <>".format(flag)) flag = boolean_function(9 < 5) print("\nOutput of second function is <>".format(flag))

Программа 2

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

В языке программирования Python пользователь может возвращать несколько значений из функции. Ниже приведены различные методы для этого.

1. Использование объекта: этот метод похож на C / C ++ и Java. Пользователь может создать класс для хранения нескольких значений в функции и возврата объекта этого класса.

class a: def __init__(self): self.omg = "javatpoint is the best website to learn" self.i = 122 # This function will return an object of the class a def test(): return a() # Driver code to test the above method z = test() print(z.omg) print(z.i)

Использование объекта

2. Использование кортежа: кортеж похож на список, но есть небольшая разница между кортежем и списком. В кортеже значения объекта нельзя изменить, а в списке – можно.

def test(): omg = "javatpoint is the best website to learn" i = 122 return omg, i; # Return tuple, we could also. # Driver code to test the above method. omg, i = test() # Assign return tuple print(omg) print(i)

Использование кортежа

3. Использование списка: список аналогичен массиву динамического размера. В списке пользователь может хранить все в одной переменной.

def test(): omg = "javatpoint" i = 122 return [omg, i]; # Driver code to test the above method list = test() print(list)

Использование списка

4. Использование словаря. В языке Python словарь – это набор неструктурированных элементов, которые используются для хранения значений данных, таких как хэш или карта.

def test(): a = dict(); a['omg'] = "javatpoint" a['i'] = 122 return a # Driver code to test the above method a = test() print(a)

Использование словаря

5. Использование класса данных(Python 3.7+)

from dataclasses import dataclass @dataclass class Book_list: bookname: str cost: float quantity_of_book_available: int = 0 # This function is used to calculate the total cost of the books def total_cost_of_book(self) -> float: return self.cost * self.quantity_of_book_available book = Book_list("Python programming language.", 499, 10) i = book.total_cost_of_book() # print the total cost print(i) # print the details of the book print(book)

Использование класса данных

Функция, возвращающая другую функцию

В языке программирования Python функция имеет форму объекта. Следовательно, пользователь может вернуть функцию из другой функции.

В приведенной ниже программе функция first_add возвращает функцию second_add.

def first_add(x): def second_add(y): return x + y return second_add i = first_add(20) print("The value of x + y is", i(10)) # second function def outer_func(x): return x * 5 def func(): # return the value in the different function return outer_func # storing the function in z z = func() print("\nThe value of x * y is", z(10))

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

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