Функции — важнейший инструмент в программировании на Python. Это подпрограммы, вызываемые из основного кода для выполнения определённых действий. Далее описывается создание и использование функций в Python, включая функции def, lambda и ключевое слово return.
Создание функций с помощью def
Для создания функции используется ключевое слово def. За ним следует имя функции (любое допустимое имя переменной), скобки () и двоеточие :. Внутри скобок указываются параметры (аргументы), которые функция принимает.
def my_function(x, a, b):
return x
В примере функция my_function принимает три параметра: x, a и b. Однако, в теле функции используется только x, который возвращается с помощью ключевого слова return. Функция может принимать любое количество параметров, включая ноль.
def my_function(x):
return x
print(my_function(23)) # Вывод: 23
Пример функции, суммирующей два параметра:
def add(x, a):
return x + a
print(add(23, 12)) # Вывод: 35
print(add("Hello ", "World")) # Вывод: Hello World
Функция может содержать множество строк кода:
def add(x, a):
rs = x + a
return rs
print(add(23, 12)) # Вывод: 35
Важно, чтобы отступ (обычно табуляция) для всех строк внутри функции был одинаковым.
Функции возвращают различные типы данных: числа, строки, списки, словари, кортежи и т.д. Ключевое слово return указывает возвращаемое значение. Если return отсутствует, функция возвращает None.
Вложенные функции
Функции могут быть вложены друг в друга:
def outer_function(x):
def inner_function(a):
return x + a
return inner_function
test = outer_function(100)
print(test(200)) # Вывод: 300
Функция outer_function возвращает функцию inner_function, которая использует значение x из внешней функции. Вызов test(200) эквивалентен вызову inner_function(200) с x = 100.
Функции без возвращаемого значения
Если функция не должна возвращать значение, используется ключевое слово pass:
def my_function():
x = 34
y = 45
pass
print(my_function()) # Вывод: None
Аргументы по умолчанию
Аргументам функции могут быть присвоены значения по умолчанию:
def func(r, w=2, y=2):
s = r + w
s *= y
return s
print(func(4)) # Вывод: 12 (4 + 2) * 2
print(func(4, 3)) # Вывод: 14 (4 + 3) * 2
print(func(4, 3, 3)) # Вывод: 21 (4 + 3) * 3
Аргументы по умолчанию должны указываться после обычных аргументов.
Передача произвольного количества аргументов
Функции могут принимать произвольное количество аргументов:
def func(*args):
print(args) # args - кортеж
func(2, 78.5, 6) # Вывод: (2, 78.5, 6)
Для передачи произвольного количества именованных аргументов используется двойная звёздочка:
def func(**kwargs):
print(kwargs) # kwargs - словарь
func(a=23, n=56, o=90, short='dict', longer='Dictionary')
Lambda-функции
Lambda-функции — анонимные функции, записываемые в одну строку:
add = lambda x, y: x + y
print(add(2, 5)) # Вывод: 7
print(add("Q", "Q")) # Вывод: QQ
print(add("Q"*5, "")) # Вывод: QQQQQ
Lambda-функции также могут принимать произвольное количество аргументов.
Функции — мощный инструмент в Python, позволяющий структурировать код, повторно использовать фрагменты и создавать более сложные программы. Понимание разных способов определения и вызова функций, а также использования lambda-функций, является ключом к эффективному программированию на Python.