- Функции в Python (def, return)
- Введение
- Определение функции в Python
- Вызов функции
- Необязательные аргументы функции
- Оператор return
- Возвращение нескольких значений
- Заключение
- Что делает return в Python?
- Пример
- Вывод
- Пример оператора return Python
- Каждая функция что-то возвращает
- Что произойдет, если в операторе ничего нет?
- Может иметь несколько операторов
- Функция может возвращать несколько типов значений
- Возврат нескольких значений в одном операторе
- С блоком finally
Функции в Python (def, return)
Статьи
Введение
В данной статье узнаем про ключевое слово def и как его использовать, а также об операторе return.
Определение функции в Python
Чтобы создать функцию в Python, необходимо использовать ключевое слово def. Синтаксис выглядит следующим образом:
def название_функции(аргументы): блок_кода return результат
- название_функции – уникальное имя функции;
- аргументы – параметры, которые функция принимает. Может быть пустым, если функция не принимает аргументов;
- блок кода – блок операторов, который выполняется при вызове функции;
- return – оператор, который возвращает результат выполнения функции. Необязательный, т.к. функция может ничего не возвращать.
Пример функции, которая принимает два аргумента и возвращает их сумму:
def sum_numbers(a, b): result = a + b return result
Вызов функции
Чтобы функция сработала, её нужно вызвать. Пример вызова функции:
def sum_numbers(a, b): return result print(sum_numbers(10, 5)) # Вывод: 15
Необязательные аргументы функции
Также в функцию можно добавлять необязательные аргументы. Для этого при её создании нужно указать значение по умолчанию для аргумента:
def sum_numbers(a, b=5): result = a + b return result
Таким образом аргумент b стал необязательным, и его можно не указывать при вызове функции:
def sum_numbers(a, b=5): result = a + b return result print(sum_numbers(10)) # Вывод: 15
Оператор return
Теперь поговорим про оператор return более подробно. И так, данный оператор возвращает результат выполнения функции. Т.е. после его срабатывания функция перестаёт работать, даже если после него идёт какой-то код.
def sum_numbers(a, b=5): return a + b print('Привет') sum_numbers(10) # Вывод: 15
В примере выше будет возвращён результат выполнения функции в виде суммы a + b, а функция print() будет проигнорирована.
Возвращение нескольких значений
Функция также может возвращать несколько значений в виде кортежа:
def sum_numbers(a, b): return a, b print(sum_numbers(10, 5)) # Вывод: (10, 5)
Заключение
В ходе статьи мы с Вами узнали про функции в Python, в частности о ключевом слове def и операторе return. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Что делает return в Python?
Функция print() записывает, то есть «печатает», строку или число на консоли. Оператор return не выводит значение, которое возвращается при вызове функции. Это, однако, приводит к немедленному завершению или завершению функции, даже если это не последний оператор функции.
Во многих других языках функция, которая не возвращает значение, называется процедурой.
В данном коде значение, возвращаемое (то есть 2) при вызове функции foo(), используется в функции bar(). Эти возвращаемые значения печатаются на консоли только тогда, когда используются операторы печати, как показано ниже.
Пример
def foo(): print("Hello from within foo") return 2 def bar(): return 10*foo() print foo() print bar()
Вывод
Hello from within foo 2 Hello from within foo 20
Мы видим, что когда foo() вызывается из bar(), 2 не записывается в консоль. Вместо этого он используется для вычисления значения, возвращаемого из bar().
Пример оператора return Python
Давайте посмотрим на простой пример сложения двух чисел и возврата суммы вызывающему абоненту.
def add(x, y): total = x + y return total
Мы можем оптимизировать функцию, указав выражение в операторе возврата.
Каждая функция что-то возвращает
Давайте посмотрим, что возвращается, когда функция не имеет оператора возврата.
>>> def foo(): . pass . >>> >>> print(foo()) None >>>
Что произойдет, если в операторе ничего нет?
Когда оператор return не имеет значения, функция возвращает None.
>>> def return_none(): . return . >>> print(return_none()) None >>>
Может иметь несколько операторов
def type_of_int(i): if i % 2 == 0: return 'even' else: return 'odd'
Функция может возвращать несколько типов значений
В отличие от других языков программирования, функции Python не ограничиваются возвратом значений одного типа. Если вы посмотрите на определение функции, в нем нет никакой информации о том, что она может вернуть.
Давайте посмотрим на пример, в котором функция возвращает несколько типов значений.
def get_demo_data(object_type): if 'str' == object_type: return 'test' elif 'tuple' == object_type: return (1, 2, 3) elif 'list' == object_type: return [1, 2, 3] elif 'dict' == object_type: return else: return None
Возврат нескольких значений в одном операторе
Мы можем вернуть несколько значений из одного оператора возврата. Эти значения разделяются запятой и возвращаются вызывающей программе в виде кортежа.
def return_multiple_values(): return 1, 2, 3 print(return_multiple_values()) print(type(return_multiple_values()))
С блоком finally
Как работает оператор return внутри блока try-except? Сначала выполняется код блока finally перед возвратом значения вызывающей стороне.
def hello(): try: return 'hello try' finally: print('finally block') def hello_new(): try: raise TypeError except TypeError as te: return 'hello except' finally: print('finally block') print(hello()) print(hello_new())
finally block hello try finally block hello except
Если в блоке finally есть оператор return, то предыдущий оператор return игнорируется и возвращается значение из блока finally.
def hello(): try: return 'hello try' finally: print('finally block') return 'hello from finally' print(hello())
finally block hello from finally