popov . dev

Main

Library

Articles

Использование фу...

Использование функций в Python

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

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

  1. Зачем нужны функции в Python?
  2. Что такое функции?
  3. Типы функций
  4. Встроенные функции Python
  5. Рекурсивная функция
  6. Лямбда-функция Python
  7. Определяемые пользователем функции

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

Зачем нам нужны функции Python?

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

Изменения, как правило, вносятся для улучшения результатов, таких как выполнение задач и поиск результатов. Кроме того, набор операций или инструкций, необходимых для их выполнения, берется из логически функциональных блоков кода, которые могут быть повторно использованы независимо от основной программы.

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

Что бы вы предпочли: написать один фрагмент кода 10 раз или только один раз и использовать его 10 раз?

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

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

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

Давайте сначала попробуем понять, что они нам нужны, на простом примере.

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

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

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

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

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

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

Используя функции, программисты сокращают время написания кода и отладки, тем самым сокращая общее время разработки.

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

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

Функции в Python являются классическим примером такого повторного использования. Таким образом, для обслуживания широкого спектра приложений, от графического интерфейса пользователя и математических вычислений до веб-разработки и тестирования, интерпретатор Python уже оснащен множеством функций, которые всегда доступны для использования. Кроме того, вы также можете добавить в свою программу другие библиотеки или модули, которые содержат предопределенные функции, легко доступные для использования.

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

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

DRY расшифровывается как "Don't repeat yourself" (Не повторяйся), эта концепция использования повторно используемых блоков кода очень важна для достижения абстракции в Python. Таким образом, для использования функции все, что вам действительно нужно, - это ее имя, назначение, аргументы, если они принимаются, и тип результата, если он возвращается.

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

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

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

Функция представляет собой подпрограмму, которая работает с данными и выдает некоторый результат.

Чтобы определить функцию Python, вам нужно будет использовать ключевое слово def перед именем вашей функции и добавить в его конец круглые скобки, за которыми следует двоеточие:.

Python использует отступы для обозначения блоков вместо скобок, чтобы сделать коды более удобочитаемыми.

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

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

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

Правила именования функции такие же, как и для переменной. Оно начинается либо с буквы A-Z, либо с a-z в верхнем и нижнем регистрах, либо со знака подчеркивания _. Остальная часть его названия может содержать символы подчеркивания _, цифры 0-9, любые буквы в верхнем или нижнем регистре.

  1. Зарезервированное ключевое слово не может быть выбрано в качестве идентификатора.
  2. Правильное использование грамматики для улучшения читабельности кода.

Рекомендуется называть функцию Python в соответствии с тем, что она делает. Используйте строку документации прямо под первой строкой объявления функции. Это строка документации, в которой объясняется, что делает функция. По документированию вашего кода на нашем сайте есть отдельная статья.

Далее познакомимся с доступными типами функций в Python.

Типы Функций Python

Существует много типов функций, поддерживаемых языком. И каждая из них по-своему очень важна. Ниже приведены различные типы функций Python:

  1. Встроенные функции языка
  2. Рекурсивные функции
  3. Лямбда-функции
  4. Функции, определяемые пользователем

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

Встроенные функции Python

Интерпретатор Python имеет ряд функций, которые всегда доступны для использования. Эти функции называются встроенными. Например, функция print() выводит данные в стандартное поток вывода (экран) или в файловый поток.

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

Функция abs() в Python

Определение

Метод abs() возвращает абсолютное значение данного числа. Если число является комплексным, abs() возвращает его величину.

Синтаксис

Метод abs() имеет следующий синтаксис:

abs(num)

Параметры

Метод abs() принимает один аргумент:

num - число, из которого будет возвращено абсолютное значение. Число может быть:

  1. Целым числом
  2. Число с плавающей точкой
  3. Комплексным числом

Пример:

# Целое число
integer = -20
print('Абсолютное значение из -20: ', abs(integer))
 
# Число с плавающей точкой
floating = -30.33
print('Абсолютное значение из -30.33:', abs(floating))

Вывод:

Абсолютное значение из -20: 20
Абсолютное значение из -30.33: 30.33

Функция all() в Python

Определение

Метод all() возвращает значение True, если все элементы в данной итерируемой таблице имеют значение True. Если нет, он возвращает значение False.

Синтаксис

Синтаксис метода all() следующий:

all(iterable)

Параметры

Метод all() принимает один параметр:

iterable - любой повторяемый объект (список, кортеж, словарь и т.д.), содержащий элементы

Пример

# Все значения True
l = [1, 3, 4, 5]
print(all(l))
 
# Все значения False
l = [0, False]
print(all(l))
 
# Одно значение False
l = [1, 3, 4, 0]
print(all(l))
 
# Одно значение True
l = [0, False, 5]
print(all(l))
 
# Пустой объект
l = []
print(all(l))

Вывод

True
False
False
False
True

Функция ascii() в Python

Определение

Метод ascii() возвращает строку, содержащую печатаемое представление объекта. Он экранирует символы, не относящиеся к ASCII, в строке, используя символы \x, \u или \ubiscape.

Синтаксис

Метод ascii() имеет следующий синтаксис:

ascii(object)

Параметры

Метод ascii() принимает объект (например, строки, список и т.д.).

Пример

normalText = 'Python'
print(ascii(normalText))
 
otherText = 'Язык Python'
print(ascii(otherText))
 
print('\u042f\u0437\u044b\u043a Python')

Вывод

Python
\u042f\u0437\u044b\u043a Python
Язык Python

Функция bin() в Python

Определение

Метод bin() преобразует и возвращает двоичную строку, эквивалентную заданному целому числу. Если параметр не является целым числом, он должен реализовать метод __index__(), чтобы вернуть целое число.

Синтаксис

Метод bin() имеет следующий синтаксис:

bin(num)

Параметры

Метод bin() принимает один параметр:

num - целое число, двоичный эквивалент которого должен быть вычислен. Если это не целое число, следует реализовать метод __index__() для возврата целого числа.

Пример

number = 5
print('Двоичный эквивалент из 5 равен ', bin(number))

Вывод

Двоичный эквивалент из 5 равен 0b101

Функция compile() в Python

Определение

Метод compile() возвращает объектный код из источника (обычную строку, байтовую строку или объект AST).

Синтаксис

Метод compile() имеет следующий синтаксис:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Параметры

source - обычная строка, байтовая строка или объект AST

filename - файл, из которого был считан код. Если он не был прочитан из файла, вы можете указать имя самостоятельно

mode - либо exec, либо eval, либо single

eval - принимает только выражение.

exec - Это может быть блок кода, содержащий инструкции языка, класс и функции и так далее.

single - если он состоит из одного интерактивного оператора

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

optimize (необязательный) – уровень оптимизации компилятора. Значение по умолчанию -1.

Пример

codeInString = 'a = 5\nb=6\nsum=a+b\nprint("sum =",sum)'
codeObejct = compile(codeInString, 'sumstring', 'exec')
 
exec(codeObejct)

Вывод

sum = 11

Функция dict() в Python

Определение

Конструктор dict() создает словарь в Python. Существуют различные формы конструкторов dict():

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

Пример

numbers = dict(x=5, y=0)
print('numbers = ',numbers)
print(type(numbers))
 
empty = dict()
print('empty = ',empty)
print(type(empty))

Вывод

numbers =  {'x': 5, 'y': 0}
empty =  {}
<class 'dict'>

Функция enumerate() в Python:

Определение

Метод enumerate() добавляет счетчик к iterable и возвращает его (объект enumerate).

Синтаксис

Метода enumerate() имеет следующий синтаксис:

enumerate(iterable, start=0)

Параметры

Метод enumerate() принимает два параметра:

iterable - последовательность, итератор или объекты, поддерживающие итерацию.

start (необязательный) - функция enumerate() начинает отсчет с этого числа. Если значение start пропущено, то в качестве начального значения берется 0.

Пример

grocery = ['хлеб', 'молоко', 'батон']
enumerateGrocery = enumerate(grocery)
 
print(type(enumerateGrocery))
 
# Конвертация в список
print(list(enumerateGrocery))
 
# Изменяем значение отсчета по умолчанию
enumerateGrocery = enumerate(grocery, 10)
print(list(enumerateGrocery))

Вывод

<class 'enumerate'>
[(0, 'хлеб'), (1, 'молоко'), (2, 'батон')]
[(10, 'хлеб'), (11, 'молоко'), (12, 'батон')]

Функция eval() в Python:

Определение

Метод eval() анализирует выражение, переданное этому методу, и запускает как исполняемый код Python.

Синтаксис

Синтаксис метода eval() следующий:

eval(expression, globals=None, locals=None)

Параметры

Функция eval() принимает три параметра:

expression - эта строка анализируется и вычисляется как выражение Python

globals (необязательный) - словарь

locals (необязательный) - объект отображения. Словарь - это стандартный и часто используемый тип отображения в Python.

Пример

x = 1 
print(eval('x + 1'))

Вывод

11

Функция filter() в Python

Определение

Метод filter() создает итератор из элементов iterable, для которых функция возвращает значение True.

Синтаксис

Синтаксис метода filter() следующий:

filter(function, iterable)

Параметры

Метод filter() принимает два параметра:

function - функция, которая проверяет, возвращают ли элементы iterable значение True или False. Если нет, то по умолчанию используется идентичная функция, возвращающая значение False, если какие-либо элементы возвращают False.

iterable - итерируемый объект, который должен быть отфильтрован, могут быть наборы, списки, кортежи или контейнеры любых итераторов.

Пример

# Список букв
alphabets = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
 
# Функция фильтрует гласные
def filterVowels(alphabet):
    vowels = ['a', 'e', 'i', 'o', 'u']
 
    if(alphabet in vowels):
        return True
    else:
        return False
 
filteredVowels = filter(filterVowels, alphabets)
 
print('Отфильтрованные гласные:')
for vowel in filteredVowels:
    print(vowel)

Вывод

Отфильтрованные гласные:
a
e
i
o

Функция getattr() в Python

Определение

Метод getattr() возвращает значение именованного атрибута объекта. Если он не найден, он возвращает значение по умолчанию, предоставленное функции.

Синтаксис

Синтаксис метода getattr() следующий:

getattr(object, name[, default])

Параметры

Метод getattr() принимает несколько параметров:

object - объект, значение выбранного атрибута которого должно быть возвращено

name - строка c названием атрибута.

default (необязательный) - значение, которое возвращается, когда выбранный атрибут не найден.

Пример

class Person:
    age = 23
    name = "Петя"
 
person = Person()
print('Возраст: ', getattr(person, "age"))
print('Возраст: ', person.age)

Вывод

Возраст:  23
Возраст:  23

Функция help() в Python

Определение

Метод help() вызывает встроенную справочную систему Python.

Синтаксис

Синтаксис метода help() следующий:

help(object)

Параметры

Метод help() принимает максимум один параметр.

object (необязательный) - вы хотите сгенерировать справку по данному объекту

Пример

help('print')

Функция id() в Python

Определение

Функция id() возвращает идентификатор (уникальное целое число) объекта.

Синтаксис

Синтаксис метода id() следующий:

id(object)

Параметры

Функция id() принимает один параметр object.

Пример

class Foo:
    b = 5
 
dummyFoo = Foo()
print('ID объекта dummyFoo = ', id(dummyFoo))

Вывод

ID объекта dummyFoo = 600244827435121

Функция len() в Python

Определение

Функция len() возвращает количество элементов (длину) в объекте.

Синтаксис

Синтаксис метода len() следующий:

len(s)

Параметры

s - последовательность (строка, байты, кортеж, список или диапазон) или коллекция (словарь, набор)

Пример

testList = []
print(testList, 'Длина: ', len(testList))
 
testList = [1, 2, 3]
print(testList, 'Длина: ', len(testList))
 
testTuple = (1, 2, 3)
print(testTuple, 'Длина: ', len(testTuple))
 
testRange = range(1, 10)
print('Длина ', testRange, ':', len(testRange))

Вывод

[] Длина:  0
[1, 2, 3] Длина:  3
Длина  range(1, 10) : 9

Функция max() в Python

Определение

Метод max() возвращает самый большой элемент в итерируемом или самом большом из двух или более параметров.

Синтаксис

Синтаксис метода max() следующий:

max(iterable, *iterables[,key, default])
max(arg1, arg2, *args[, key])

Параметры

max() имеет две формы аргументов, с которыми он может работать. Первая:

max(iterable, *iterables[, key, default])

iterable - последовательность (кортеж, строка), коллекция (набор, словарь) или объект-итератор, самый большой элемент которого должен быть найден

*iterables (необязательный) - любое количество повторяемых значений, наибольшее из которых должно быть найдено

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

default (необязательный) - значение по умолчанию, если строка пуста.

Вторая форма max():

max(arg1,arg2, *args[, key])

arg1 - обязательный первый объект для сравнения (может быть числом, строкой или другим объектом)

arg2 - обязательный второй объект для сравнения (может быть числом, строкой или другим объектом)

*args (необязательный) - другие объекты для сравнения

key - ключевая функция, в которой передается каждый аргумент и выполняется сравнение на основе его возвращаемого значения.

Пример

# Форма max(arg1, arg2, *args)
print('Максимум: ', max(1, 3, 2, 5, 4))
 
# Форма max(iterable)
num = [1, 3, 2, 8, 5, 10, 6]
print('Максимум: ', max(num))

Вывод

Максимум: 5 
Максимум: 10

Функция min() в Python

Определение

Метод min() возвращает наименьший элемент в итерируемом объекте или наименьшем из двух или более параметров.

Синтаксис

Метод min() имеет следующий синтаксис:

min(iterable, *iterables[,key, default])
min(arg1, arg2, *args[, key])

Параметры

Функция min() имеет две формы аргументов, с которыми он может работать. Первая:

min(iterable, *iterables[, key, default])

iterable - последовательность (кортеж, строка), коллекция (набор, словарь) или объект-итератор, наименьший элемент которого должен быть найден

*iterables (необязательный) - любое количество итерируемых значений, наименьшее из которых должно быть найдено

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

default (необязательный) - значение по умолчанию, если строка пуста.

Вторая форма метода min():

min(arg1, arg2, *args[, key])

arg1 - обязательный первый объект для сравнения (может быть числом, строкой или другим объектом)

arg2 - обязательный второй объект для сравнения (может быть числом, строкой или другим объектом)

*args (необязательный) - другие объекты для сравнения

key - ключевая функция, в которой передается каждый аргумент и выполняется сравнение на основе его возвращаемого значения.

Пример

# Форма min(arg1, arg2, *args)
print('Минимум: ', min(1, 3, 2, 5, 4))
 
# Форма min(iterable)
num = [3, 2, 8, 5, 10, 6]
print('Минимум: ', min(num))

Вывод

Минимум: 1 
Минимум: 2

Функция oct() в Python

Определение

Метод oct() принимает целое число и возвращает его восьмеричное представление. Если заданное число является int, он должен реализовать метод __index__(), чтобы вернуть целое число.

Синтаксис метода oct() следующий:

oct(x)

Параметры

Метод oct() принимает один параметр x. Этот параметр может быть:

  1. Целое число (двоичное, десятичное или шестнадцатеричное)
  2. Если это не целое число, необходимо реализовать метод __index__() для возврата целого числа

Пример

# Десятичное число
print('oct(10): ', oct(10))
 
# Бинарное число
print('oct(0b101): ', oct(0b101))
 
# Шестнадцатеричное число
print('oct(0XA): ', oct(0XA))

Вывод

oct(10): 0o12
oct(0b101): 0o5
oct(0XA): 0o12

Функция pow() в Python

Определение

Метод pow() возвращает значение x в степени y. Если задан третий аргумент z, он возвращает значение x в степени y по модулю z, т.е. pow(x, y) % z.

Синтаксис метода pow() следующий:

pow(x, y[, z])

Параметры

Метод pow() принимает три параметра:

x - число, над которым будут произведены вычисления

y - степень, в которую будет возведено число x

z (необязательный) - основание модуля

Пример

# Положительный x, положительный y (x**y)
print(pow(2, 2))
 
# Отрицательный x, положительный y
print(pow(-2, 2))
 
# Положительный x, отрицательный y (x**-y)
print(pow(2, -2))
 
# Отрицательный x, отрицательный y
print(pow(-2, -2))

Вывод

4
4
0.25
0.25

Функция reversed() в Python

Определение

Метод reversed() возвращает последовательность в обратном порядке.

Синтаксис метода reversed() следующий:

reversed(seq)

Параметры

Метод reversed() принимает один параметр:

seq - последовательность, которую следует изменить на обратную. Может быть объектом, поддерживающим итерацию (методы __len__() и __getitem__()) в виде кортежа, строки, списка или диапазона Может быть объектом, в котором реализован __reversed__()

Пример

# Строка
seqString = 'Python'
print(list(reversed(seqString)))
 
# Кортеж
seqTuple = ('P', 'y', 't', 'h', 'o', 'n')
print(list(reversed(seqTuple)))
 
# Диапазон чисел
seqRange = range(5, 9)
print(list(reversed(seqRange)))
 
# Список
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))

Вывод

['n', 'o', 'h', 't', 'y', 'P']
['n', 'o', 'h', 't', 'y', 'P']
[8, 7, 6, 5]
[5, 3, 4, 2, 1]

Функция sum() в Python

Определение

Метод sum() возвращает число, сумму всех элементов последовательности.

Синтаксис

Синтаксис метода sum() следующий:

sum(iterable, start)

Параметры

iterable - последовательность для суммирования

start (необязательный) - значение, которое добавляется к возвращаемому значению

Пример

numbers = [2.5, 3, 4, -5]
 
# start параметр не указан
numbersSum = sum(numbers)
print(numbersSum)
 
# start = 10
numbersSum = sum(numbers, 10)
print(numbersSum)

Вывод

4.5 
14.5

Функция type() в Python

Определение

Если во встроенную функцию type() передается один аргумент object, то она возвращает тип данного объекта. Если передаются три аргумента name, bases и dict, она возвращает объект нового типа.

Синтаксис

Синтаксис метода type() следующий:

type(object) 
type(name, bases, dict)

Параметры

Если в функцию type() передается единственный аргумент object, она возвращает тип данного объекта.

Пример

numberList = [1, 2]
print(type(numberList))
 
numberDict = {1: 'один', 2: 'два'}
print(type(numberDict))
 
class Foo:
    a = 0
 
InstanceOfFoo = Foo()
print(type(InstanceOfFoo))

Вывод

<class 'dict'>
<class 'Foo'>

Отлично, теперь перейдем к следующему типу функций. Рассмотрим рекурсивную функцию в Python.

Рекурсивные функции Python

Что такое рекурсия в Python?

Рекурсия - определение процесса внутри этого процесса. Примером из реального мира может служить размещение двух параллельных зеркал напротив друг друга. Любой объект, находящийся между ними, будет отражаться рекурсивно.

Рекурсивная функция Python

Мы знаем, что в Python функция может вызывать другие функции. Функция может даже вызывать саму себя. Конструкции такого типа называются рекурсивными функциями.

Ниже приведен пример рекурсивной функции для нахождения факториала целого числа.

Факториал числа - это произведение всех целых чисел от 1 до этого числа. Например, факториал от 5 (обозначаемый как 5!) равен 1 * 2 * 3 * 4 * 5 = 120.

Пример

# Пример рекурсивной функции
# для нахождения факториала числа
 
def calc_factorial(x):
    """Это рекурсивная функция
    для нахождения факториала числа"""
 
    if x == 1:
        return 1
    else:
        return (x * calc_factorial(x-1))
 
num = 4
print("Факториал из ", num, " равен ", calc_factorial(num))

В приведенном выше примере calc_factorial() является рекурсивной функцией в том виде, в каком она сама себя вызывает.

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

Каждый вызов функции умножает число на факториал числа 1 до тех пор, пока число не станет равным единице.

Наша рекурсия заканчивается, когда число уменьшается до 1. Это называется базовым условием. Каждая рекурсивная функция должна иметь базовое условие, которое останавливает рекурсию, иначе функция будет вызывать саму себя бесконечно.

Преимущества рекурсии

  1. Рекурсивные функции придают коду чистый и элегантный вид.
  2. Сложную задачу можно разбить на более простые подзадачи с помощью рекурсии.
  3. Генерация последовательности с помощью рекурсии выполняется проще, чем с помощью какой-либо вложенной итерации.

Недостатки рекурсии

  1. Иногда логику, лежащую в основе рекурсии, трудно проследить до конца.
  2. Рекурсивные вызовы являются затратными (неэффективными), поскольку они занимают много памяти и времени.
  3. Рекурсивные функции вызывают сложность при отладке.

Далее в этой статье рассмотрим лямбда-функцию в Python.

Лямбда-функции Python

Что такое Лямбда-функции?

В Python анонимная функция - это функция, которая определяется без имени.

В то время как обычные функции определяются с помощью ключевого слова def, в Python анонимные функции определяются с помощью ключевого слова lambda.

Следовательно, анонимные функции также называются лямбда-функциями.

Как использовать лямбда-функции в Python?

Лямбда-функция в python имеет следующий синтаксис:

lambda arguments: expression

Лямбда-функции могут иметь любое количество аргументов, но только одно выражение. Выражение (инструкция) вычисляется и возвращается. Лямбда-функции можно использовать везде, где требуются вычисляемые выражения.

Пример

double = lambda x: x * 2
 
# Вывод: 10
print(double(5))

В приведенной выше программе lambda x: x * 2 - это лямбда-функция. Здесь x - это аргумент, а x * 2 - это выражение, которое вычисляется и возвращается.

У этой функции нет имени. Она возвращает объект функции, которому присвоен идентификатор double, и теперь мы можем вызывать его как обычную функцию. Выражение:

double = lambda x: x * 2

Практически идентично следующему:

def double(x): 
    return x * 2

Далее в данной статье, мы рассмотрим, как можно использовать определенные пользователем (собственные) функции в Python.

Определяемые пользователем функции Python

Что означает определяемые пользователем функции в Python?

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

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

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

Преимущества пользовательских функций

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

Синтаксис

def function_name(argument1, argument2, ...) :
      statement_1
      statement_2
      ....

Пример

# Программа показывающая
# как использовать собственные функции
 
def add_numbers(x,y):
   sum = x + y
   return sum
 
num1 = 5
num2 = 6
 
print("Сумма чисел: ", add_numbers(num1, num2))

Вывод

Сумма чисел: 11

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

Пишем программу простого калькулятора на Python

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

Код

# Простой калькулятор, который может складывать,
# вычитать, умножать и делить с помощью функций
 
# Сложение чисел 
def add(x, y):
   return x + y
 
# Вычитание чисел 
def subtract(x, y):
   return x - y
 
# Умножение чисел
def multiply(x, y):
   return x * y
 
# Деление чисел
def divide(x, y):
   return x / y
 
print("Выберите операцию")
print("1. Сложение")
print("2. Вычитание")
print("3. Умножение")
print("4. Деление")
 
# Получаем ввод пользователя 
choice = input("Ваш выбор: [1 / 2 / 3 / 4]: ")
 
num1 = int(input("Первое число: "))
num2 = int(input("Второе число: "))
 
if choice == '1':
   print(num1, " + ", num2, " = ",  add(num1,num2))
 
elif choice == '2':
   print(num1, " - ", num2, " = ", subtract(num1,num2))
 
elif choice == '3':
   print(num1, " * ", num2, " = ", multiply(num1,num2))
 
elif choice == '4':
   print(num1, " / ", num2, " = ", divide(num1,num2))
else:
   print("Нет такой операции!")

Пример вывода

Выберите операцию
1. Сложение
2. Вычитание
3. Умножение
4. Деление
Ваш выбор: [1 / 2 / 3 / 4]: 3
Первое число: 15
Второе число: 14
15 * 14 = 210

В этой программе мы просим пользователя выбрать нужную операцию. Допустимы варианты 1, 2, 3 и 4. Берутся два числа и для выполнения определенного раздела используется ветвление if...elif...else. Определяемые пользователем функции add(), substract(), multiply() и divide() вычисляют соответствующие операции.

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

Это будет очень удобно, когда вы пытаетесь создать приложение, поскольку упрощает процесс и делает его подходящим для ваших личных нужд. Теперь вы должны уметь использовать функции для разработки приложений на Python.

Comments

In order to leave your opinion, you need to register on the website