Функции – фундаментальная концепция программирования, позволяющая структурировать код и повышать его повторное использование. До этого момента мы работали с небольшими фрагментами кода, решающими отдельные задачи. Однако, часто возникает необходимость использовать один и тот же код в разных частях программы. Переписывание или копирование кода неэффективно, поэтому функции предоставляют элегантное решение этой проблемы. Создание функций – первый шаг к сокращению и повторному использованию кода.
Что такое функция?
Функция – именованный блок кода, отделенный от остальной части программы. Она выполняет определенную задачу и может быть многократно использована. Функция может принимать входные данные (аргументы) и возвращать результат своей работы.
Работа с функциями в Python
В Python работа с функциями сводится к двум основным действиям: определению (созданию) и вызову (использованию). Функции являются базовой программной структурой Python и предназначены для многократного использования кода, что способствует улучшению дизайна программ. Мы уже использовали встроенные функции, такие как print, input и len. Например, функция len принимает данные (например, список) и возвращает их количество.
Определение и вызов функции
Для определения функции используется оператор def, за которым следует имя функции, круглые скобки (в которых могут быть параметры) и двоеточие. Тело функции (инструкции, которые она выполняет) записывается на новых строках с отступом. Имена функций подчиняются тем же правилам, что и имена переменных (не должны начинаться с цифры).
def fun1():
print("Hello")
print("World")
Определение функции само по себе не выполняет код. Для выполнения кода функции необходимо её вызвать, указав имя и круглые скобки:
fun1()
Функцию можно вызывать неограниченное количество раз.
Пустые функции
Можно создать пустую функцию, например, используя оператор pass как заглушку при проектировании программы:
def empty_function():
pass
pass предотвращает ошибки, связанные с отсутствием тела функции. Позже можно вернуться к определению функции и добавить необходимый код.
Возвращение значения
Для возврата значения из функции используется оператор return:
def return_true():
return True
print(return_true()) # Выведет True
result = return_true()
print(result) # Выведет True
Функции с параметрами и аргументами
Функция может принимать аргументы и возвращать результат, обрабатывая полученные данные. Например, функция, вычисляющая произведение двух чисел:
def multiply(a, b):
return a * b
print(multiply(5, 10)) # Выведет 50
Значения, передаваемые функции при вызове, называются аргументами. Внутри функции эти аргументы становятся параметрами. Порядок аргументов должен соответствовать порядку параметров.
Типы аргументов
Позиционные и именованные аргументы
Мы работали с позиционными аргументами, где порядок важен. Однако, можно использовать именованные аргументы, указывая имя параметра при передаче значения:
print(multiply(b=10, a=5)) # Выведет 50
При использовании именованных аргументов порядок не важен.
Аргументы по умолчанию
Можно задавать значения по умолчанию для параметров:
def default_values(a=10, b=20):
print(f"a = {a}, b = {b}")
default_values() # a = 10, b = 20
default_values(b=8) # a = 10, b = 8
Если аргумент не передан, используется значение по умолчанию.
Аргументы переменной длины
Когда количество аргументов неизвестно заранее, можно использовать аргументы переменной длины:
def variable_length(*args):
return args
print(variable_length(1, 2, "hello")) # Выведет (1, 2, 'hello')
*args создает кортеж из всех переданных позиционных аргументов. Для именованных аргументов переменной длины используется **kwargs:
def variable_length_kwargs(**kwargs):
return kwargs
print(variable_length_kwargs(a=74, b="hello", c=78)) # Выведет {'a': 74, 'b': 'hello', 'c': 78}
**kwargs создает словарь из всех переданных именованных аргументов.
Полиморфизм функций
Функции в Python являются полиморфными – они могут работать с объектами разных типов данных. Тип данных определяет, как функция будет обрабатывать аргументы:
def polymorphic_function(a, b):
return a + b
print(polymorphic_function(78, 10)) # Выведет 88
print(polymorphic_function("Hello", "World")) # Выведет HelloWorld
Функции – мощный инструмент в Python, позволяющий создавать более структурированный, читаемый и многократно используемый код. Изучение функций – важный шаг в освоении программирования на Python. Тема функций достаточно обширна и будет продолжена в последующих уроках.