Перейти к содержимому

Return python 3 что это

  • автор:

Инструкция return

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

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

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

Примеры использования:
def sum(a, b): return a + b def func(a, b): if a > b: x = a - b return x*x return a + b # или def func(a, b): if a > b: c = a - b x = c*c else: x = a + b return x 
  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Функции это объекты
  • Функции могут иметь атрибуты
  • Функции могут храниться в структурах данных
  • Функции могут быть вложенными
  • Передача функции в качестве аргумента другой функции
  • Область видимости переменных функции
  • Операторы global и nonlocal
  • Параметры (аргументы) функции
  • Ключевые аргументы в определении функции Python
  • Значение аргумента по умолчанию в функциях Python
  • Варианты передачи аргументов в функцию Python
  • Переменные аргументов *args и **kwargs в функции Python
  • Распаковка аргументов для передачи в функцию Python
  • Как оцениваются аргументы при вызове функции?
  • Строгие правила передачи аргументов в функцию Python
  • Инструкция return
  • Анонимные функции (lambda-выражения)
  • Строки документации в функциях Python
  • Рекурсия
  • Замыкания в функциях Python
  • Перегрузка функций

Что такое 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

Как работает функция 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 в функциях. Функциональное программирование

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

Я открою программу, которую мы делали на предыдущем занятии с функцией send_mail(). И давайте здесь объявим еще одну функцию, которая бы вычисляла квадратный корень из положительных чисел:

def get_sqrt(x): res = None if x  0 else x ** 0.5

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

Итак, у нас здесь функция с именем get_sqrt(), которое я сам придумал и одним параметром x. Внутри функции я воспользовался тернарным условным оператором, так что переменная res будет принимать None для отрицательных значений и квадратный корень – для неотрицательных.

Давайте попробуем ее вызвать и посмотрим, что она возвратит:

a = get_sqrt(49) print(a)

Во-первых, мы здесь видим новую конструкцию: переменной a присваиваем вызов функции. Это следует воспринимать так, что переменная a будет ссылаться на результат работы этой функции. Что такое результат работы функции, мы сейчас узнаем. В данном случае, значение a равно None. Фактически, это означает, что функция ничего не возвращает, никакого результата! Но почему? Мы же в теле этой функции делаем вычисление квадратного корня? И аргумент передаем положительный. Все дело в том, что внутри функции нужно явно указать, что именно она должна вернуть. Делается это с помощью специального оператора return, после которого через пробел указываются данные, которые будут возвращены. В данном случае, пропишем переменную res.

Снова запустим программу и, смотрите, теперь наша переменная a ссылается на вычисленное значение. Как это произошло? Оператор res вернул объект с вычисленным значением 7.0 и это означает, что функция возвращает этот объект. Затем, с помощью оператора присваивания, создалась переменная a со ссылкой на этот объект. Поэтому при выводе этой переменной, мы видим значение 7.0

Причем, вот этот вот параметр x и переменная res существуют только в момент вызова функции get_sqrt() и пропадают за ее пределами. Мы об этом еще поговорим. Но, пока имейте в виду, что за пределами функции вывести напрямую переменную res, например, не получится:

print(a, res)

возникнет ошибка, что имя res не определено.

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

def get_sqrt(x): res = None if x  0 else x ** 0.5 return res return x

Нам интегрированная среда здесь сразу указывает писать этот оператор без отступов. Сейчас вы поймете почему. Запускаем программу и видим, что никаких ошибок нет и отображается прежнее значение 7.0. Дело в том, что функция завершает свою работу сразу, как только встретит оператор return. Поэтому, как только была выполнена строчка return res, все остальные команды в теле функции просто игнорируются. Убедимся в этом на отладке (убеждаемся). Поэтому второй return здесь просто бессмысленен – он никогда не будет выполнен. Равно, как и любая другая команда, например, функция print():

def get_sqrt(x): res = None if x  0 else x ** 0.5 return res print(x)

А вот если ее записать до этого оператора, то увидим вывод x, а затем, вычисленного значения res.

Но все же, что делать, если нам нужно вернуть оба значения и res и x? Для этого следует поместить эти переменные в коллекцию, обычно, кортеж и вернуть ее:

def get_sqrt(x): res = None if x  0 else x ** 0.5 return (res, x)

На практике часто не пишут круглые скобки, а просто записывают элементы через запятую:

return res, x

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

a, b = get_sqrt(49) print(a, b)

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

Давайте зададим в программе еще одну функцию для определения максимального значения среди двух чисел:

def get_max2(a, b): return a if a > b else b

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

x, y = 5, 7 print(get_max2(x, y))

Я здесь специально определил дополнительно две переменные x, y, чтобы показать, что их также можно спокойно передавать в качестве аргументов. После запуска в консоли увидим максимальное значение 7.

Давайте теперь усложним задачу и будем искать максимум среди трех чисел. Помните, для этого мы использовали вложенные условия. Здесь же, поступим иначе. Определим три переменные и воспользуемся все той же функцией get_max2():

x, y, z = 5, 7, 10 print(get_max2(x, get_max2(y, z)))

Вот это и есть обещанная магия. Смотрите, как это работает. Сначала будет вызвана функция, записанная в качестве аргумента, которая возвратит максимальное среди чисел 7 и 10, то есть, значение 10, а затем, вызывается первая функция, которая определяет максимум из чисел 5 и 10. Соответственно, на выходе получаем результат 10, который и выводится в консоль. Вот так функции можно записывать в аргументах и использовать в своих программах. Мало того, мы можем ту же самую конструкцию использовать и при объявлении новой функции, определяющей максимум среди трех чисел:

def get_max3(a, b, c): return get_max2(a, get_max2(b, c))

А, затем, просто вызвать ее с тремя аргументами:

print(get_max3(x, y, z))

Видите, как элегантно можно решить эту задачу, используя функциональный подход в программировании. Разумеется, здесь функция get_max3() должна объявляться после функции get_max2(), так как использует ее, иначе, мы бы получили ошибку.

Вообще, определение (объявление) функций в Python очень похоже на объявление переменных. Например, в программе, нам никто не запрещает объявить некую переменную с именем get_rect и присвоить ей значение 1 или 2 в зависимости от значения другой переменной PERIMETR:

PERIMETR = True if PERIMETR: get_rect = 1 else: get_rect = 2

Но оказывается, то же самое можно делать и на уровне функций, вместо переменной get_rect будем объявлять разные функции:

if PERIMETR: def get_rect(a, b): return 2 * (a + b) else: def get_rect(a, b): return a * b

И, если сейчас вызвать ее:

print(get_rect(1.5, 3.8))

то получим вычисление периметра прямоугольника. Если же переменную PERIMETR изменить на False:

PERIMETR = False

то функция с именем get_rect() теперь будет вычислять площадь прямоугольника. Здорово, да! Какая гибкость определения функций в языке Python! Такого мало где встретишь.

Наконец, мы можем вообще убрать условие и дважды определить одну и ту же функцию:

def get_rect(a, b): return 2 * (a + b) def get_rect(a, b): return a * b

К ошибкам это не приведет, а просто ссылка get_rect будет инициализирована на второй объект-функцию и, соответственно, она и будет вызвана.

В заключение занятия приведу еще один пример использования функций. Объявим функцию для определения четности числа:

def even(x): return x % 2 == 0

А, затем, вызовем ее в цикле для определения: является ли текущее число четным:

for i in range(1, 20): if even(i): print(i)

После запуска в консоли увидим отображение только четных чисел.

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

Видео по теме

#1. Первое знакомство с Python Установка на компьютер

#2. Варианты исполнения команд. Переходим в PyCharm

#3. Переменные, оператор присваивания, функции type и id

#4. Числовые типы, арифметические операции

#5. Математические функции и работа с модулем math

#6. Функции print() и input(). Преобразование строк в числа int() и float()

#7. Логический тип bool. Операторы сравнения и операторы and, or, not

#8. Введение в строки. Базовые операции над строками

#9. Знакомство с индексами и срезами строк

#10. Основные методы строк

#11. Спецсимволы, экранирование символов, row-строки

#12. Форматирование строк: метод format и F-строки

#13. Списки — операторы и функции работы с ними

#14. Срезы списков и сравнение списков

#15. Основные методы списков

#16. Вложенные списки, многомерные списки

#17. Условный оператор if. Конструкция if-else

#18. Вложенные условия и множественный выбор. Конструкция if-elif-else

#19. Тернарный условный оператор. Вложенное тернарное условие

#20. Оператор цикла while

#21. Операторы циклов break, continue и else

#22. Оператор цикла for. Функция range()

#23. Примеры работы оператора цикла for. Функция enumerate()

#24. Итератор и итерируемые объекты. Функции iter() и next()

#25. Вложенные циклы. Примеры задач с вложенными циклами

#26. Треугольник Паскаля как пример работы вложенных циклов

#27. Генераторы списков (List comprehensions)

#28. Вложенные генераторы списков

#29. Введение в словари (dict). Базовые операции над словарями

#30. Методы словаря, перебор элементов словаря в цикле

#31. Кортежи (tuple) и их методы

#32. Множества (set) и их методы

#33. Операции над множествами, сравнение множеств

#34. Генераторы множеств и генераторы словарей

#35. Функции: первое знакомство, определение def и их вызов

#36. Оператор return в функциях. Функциональное программирование

#37. Алгоритм Евклида для нахождения НОД

#38. Именованные аргументы. Фактические и формальные параметры

#39. Функции с произвольным числом параметров *args и **kwargs

#40. Операторы * и ** для упаковки и распаковки коллекций

#41. Рекурсивные функции

#42. Анонимные (lambda) функции

#43. Области видимости переменных. Ключевые слова global и nonlocal

#44. Замыкания в Python

#45. Введение в декораторы функций

#46. Декораторы с параметрами. Сохранение свойств декорируемых функций

#47. Импорт стандартных модулей. Команды import и from

#48. Импорт собственных модулей

#49. Установка сторонних модулей (pip install). Пакетная установка

#50. Пакеты (package) в Python. Вложенные пакеты

#51. Функция open. Чтение данных из файла

#52. Исключение FileNotFoundError и менеджер контекста (with) для файлов

#53. Запись данных в файл в текстовом и бинарном режимах

#54. Выражения генераторы

#55. Функция-генератор. Оператор yield

#56. Функция map. Примеры ее использования

#57. Функция filter для отбора значений итерируемых объектов

#58. Функция zip. Примеры использования

#59. Сортировка с помощью метода sort и функции sorted

#60. Аргумент key для сортировки коллекций по ключу

#61. Функции isinstance и type для проверки типов данных

#62. Функции all и any. Примеры их использования

#63. Расширенное представление чисел. Системы счисления

#64. Битовые операции И, ИЛИ, НЕ, XOR. Сдвиговые операторы

#65. Модуль random стандартной библиотеки

#66. Аннотация базовыми типами

#67. Аннотации типов коллекций

#68. Аннотации типов на уровне классов

#69. Конструкция match/case. Первое знакомство

#70. Конструкция match/case с кортежами и списками

#71. Конструкция match/case со словарями и множествами

#72. Конструкция match/case. Примеры и особенности использования

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

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

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