Python для начинающих: Функции — Урок 17

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

Что такое функция?

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

Работа с функциями в 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. Тема функций достаточно обширна и будет продолжена в последующих уроках.

Что будем искать? Например,программа