Рубрики
Без рубрики

Функции Python

Функции Python – это экземпляры класса «Функция». Мы можем проверить эту функцию с использованием типа ().

Автор оригинала: Pankaj Kumar.

  • Функция – это блок кода с именем.
  • Мы можем вызвать функцию по его названию.
  • Код внутри функции работает только, когда он вызывается.
  • Функция может принимать данные из программы вызывающего абонента, она называется как параметры функции.
  • Параметры функции находятся внутри скобок и разделены запятой. Функция может принять любое количество аргументов.
  • Функция может вернуть данные в программу вызывающего абонента. В отличие от других популярных языков программирования, определение функций Python не указывает тип возврата.
  • Мы не можем использовать Зарезервированные ключевые слова как имя функции. Имя функции должно следовать за Python Identiers Правила определения.

Как определить функцию в Python?

Мы можем определить функцию в Python, используя DEF Ключевое слово Отказ Давайте посмотрим на пару примеры функции в Python.

def hello():
    print('Hello World')


def add(x, y):
    print(f'arguments are {x} and {y}')
    return x + y

На основании приведенных выше примеров мы можем определить структуру функции как это.

def function_name(arguments):
    # code statements
Функции Python

Как назвать функцию в Python?

Мы можем вызвать функцию по его названию. Если функция принимает параметры, мы должны пропустить их при вызове функции.

hello()
sum = add(10, 5)
print(f'sum is {sum}')

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

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

В Python есть два типа функций.

  1. Встроенные функции: функции, предоставляемые языком Python, такие как Print (), Len (), STR () и т. Д.
  2. Пользовательские функции: функции, определенные нами в программе Python.

Может ли функцию иметь значение параметра по умолчанию?

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

def hello(year=2019):
    print(f'Hello World {year}')


hello(2020)  # function parameter is passed
hello()  # function parameter is not passed, so default value will be used

Выход:

Hello World 2020
Hello World 2019

Можем ли мы иметь несколько операторов возврата внутри функции?

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

def odd_even_checker(i):
    if i % 2 == 0:
        return 'even'
    else:
        return 'odd'


print(odd_even_checker(20))
print(odd_even_checker(15))

Может ли функцию Python вернуть несколько значений один за другим?

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

def return_odd_ints(i):
    x = 1
    while x <= i:
        yield x
        x += 2


output = return_odd_ints(10)
for out in output:
    print(out)

Выход:

1
3
5
7
9

Функция Python Переменные аргументы

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

  1. Формальные аргументы: те, которые мы видели в примерах до сих пор.
  2. Переменная числа аргументов без ключевых слов: например, Def Добавить (* args)
  3. Переменная Количество аргументов ключевых слов или названные аргументы: Например, Def Добавить (** kwargs)

Некоторые важные моменты о переменных аргументах в Python являются:

  • Заказ аргументов должен быть формальными аргументами, * args, а ** кварги.
  • Не обязательно использовать переменные имена параметров в качестве ARGS и KWARGS. Тем не менее, это лучшая практика, чтобы использовать их для лучшей читаемости кода.
  • Тип args кортеж. Таким образом, мы можем пройти кортеж, чтобы быть сопоставленным с * args variable.
  • Тип кварг – это дикт. Таким образом, мы можем передать словарь, чтобы быть сопоставленным с ** kwargs переменной.

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

def add(x, y, *args, **kwargs):
    sum = x + y
    for a in args:
        sum += a

    for k, v in kwargs.items():
        sum += v
    return sum


total = add(1, 2, *(3, 4), **{"k1": 5, "k2": 6})
print(total)  # 21

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

Когда функция вызывает сама, это называется рекурсивной функцией. Этот сценарий называется рекурсией в программировании.

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

def fibonacci_numbers_at_index(count):
    if count <= 1:
        return count
    else:
        return fibonacci_numbers_at_index(count - 1) + fibonacci_numbers_at_index(count - 2)


count = 5
i = 1
while i <= count:
    print(fibonacci_numbers_at_index(i))
    i += 1

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

Тип данных Python Функция

Функции Python – это экземпляры класса «Функция». Мы можем проверить эту функцию с использованием типа ().

def foo():
    pass


print(type(foo))

Выход : <класс ‘Функция’>

Python Function VS Метод

  • Функция Python является частью файла сценариев Python, в котором он определен, тогда как методы определены внутри определения класса.
  • Мы можем вызвать функцию напрямую, если она в том же модуле. Если функция определяется в другом модуле, мы можем импортировать модуль, а затем вызовать функцию напрямую. Нам нужен класс или объект класса для вызова методов.
  • Функция Python может получить доступ к всем глобальным переменным, тогда как методы класса Python могут получить доступ к глобальным переменным, а также атрибутами класса и функции.
  • Тип данных Python Функции – «Функция», тогда как тип данных Python – это метод.

Давайте посмотрим на простой пример функций и методов в Python.

class Data:
    def foo(self):
        print('foo method')


def foo():
    print('foo function')


# calling a function
foo()

# calling a method
d = Data()
d.foo()

# checking data types
print(type(foo))
print(type(d.foo))

Выход:

foo function
foo method


Преимущества функций Python

  • Повторное использование кода, потому что мы можем назвать ту же функцию несколько раз
  • Модульный код, поскольку мы можем определить различные функции для разных задач
  • Улучшает ремонтопригодность кода
  • Абстракция как вызывающий абонент не должен знать реализацию функции

Анонимная функция Python

Не имеется анонимных функций. Мы можем определить анонимную функцию в Python с помощью ключевого слова lambda.

def square(x):
    return x * x


f_square = lambda x: x * x

print(square(10))  # 100
print(f_square(10))  # 100

Заключение

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