Python
  • Полезные ссылки
  • Базовый Python
    • Простые
      • Циклы. Варианты циклов, назначение.
      • Что такое список, примеры, назначение.
      • Что такое словарь, примеры, назначение.
      • Что такое срез, примеры, назначение.
      • Что такое функция. Для чего нужны функции. Параметры функций.
      • Что такое класс. Для чего нужны классы.
      • В чем разница между функцией и классом (рассматривая одну функцию).
      • Как объединить несколько строк.
      • Рекурсия.
      • Что такое json. Для чего используют json.
    • Сложные
      • Генераторы, примеры, назначение.
      • Итераторы. Зачем нужны
      • Что такое кортеж, примеры, назначение
      • Что такое set, примеры, назначение
      • Наследование, примеры, назначение
      • Полиморфизм, примеры, назначение
      • Преимущества итераторов перед генераторами
      • Способы создания итераторов
      • Изменяемые и неизменяемые типы
      • Что такое исключения, примеры, назначение
  • Алгоритмы и структуры данных
    • Общее понятие массива. Представление массива. Примеры.
    • Понятие очереди, принципы работы, примеры использование, временные сложности операций.
    • Понятие стека, принципы работы, примеры использование, временные сложности операций
    • Как осуществляется операция доступа к элементу массива. Временная сложность операции
    • Понятие временной сложности алгоритмов. Назначение, примеры, графическое представление
    • Линейный поиск в массиве. Временная сложность
    • Поиск минимального элемента в массиве. Временная сложность
    • Линейный поиск в двумерном массиве. Временная сложность
    • Алгоритм бинарного поиска. Временная сложность
    • Поиск подстроки. Линейный алгоритм. Временная сложность
  • Практика
    • Простые
    • Сложнее
Powered by GitBook
On this page
  • Аргументы функции
  • Анонимные функции, инструкция lambda

Was this helpful?

  1. Базовый Python
  2. Простые

Что такое функция. Для чего нужны функции. Параметры функций.

Функция в python - объект, принимающий аргументы и возвращающий значение Обычно функция определяется с помощью инструкции def.

Определим простейшую функцию:

def add(x, y):
    return x + y

Инструкция return говорит, что нужно вернуть значение В нашем случае функция возвращает сумму x и y. Теперь мы ее можем вызвать:

>>> add(1, 10)
11
>>> add('abc', 'def')
'abcdef'

Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!)

Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:

>>> def func():
...     pass
...
>>> print(func())
None

Аргументы функции

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

>>> def func(a, b, c=2): # c - необязательный аргумент
...     return a + b + c
...
>>> func(1, 2)  # a = 1, b = 2, c = 2 (по умолчанию)
5
>>> func(1, 2, 3)  # a = 1, b = 2, c = 3
6
>>> func(a=1, b=3)  # a = 1, b = 3, c = 2
6
>>> func(a=3, c=6)  # a = 3, c = 6, b не определен
Traceback (most recent call last):
  File "", line 1, in
    func(a=3, c=6)
TypeError: func() takes at least 2 arguments (2 given)

Функция также может принимать переменное количество позиционных аргументов, тогда перед именем ставится *:

>>> def func(*args):
...     return args
...
>>> func(1, 2, 3, 'abc')
(1, 2, 3, 'abc')
>>> func()
()
>>> func(1)
(1,)

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

Функция может принимать и произвольное число именованных аргументов, тогда перед именем ставится **:

>>> def func(**kwargs):
...     return kwargs
...
>>> func(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
>>> func()
{}
>>> func(a='python')
{'a': 'python'}

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

Анонимные функции, инструкция lambda

Анонимные функции могут содержать лишь одно выражение, но и выполняются они быстрее. Анонимные функции создаются с помощью инструкции lambda. Кроме этого, их не обязательно присваивать переменной, как делали мы инструкцией def func():

>>> func = lambda x, y: x + y
>>> func(1, 2)
3
>>> func('a', 'b')
'ab'
>>> (lambda x, y: x + y)(1, 2)
3
>>> (lambda x, y: x + y)('a', 'b')
'ab'

lambda функции, в отличие от обычной, не требуется инструкция return, а в остальном, ведет себя точно так же:

>>> func = lambda *args: args
>>> func(1, 2, 3, 4)
(1, 2, 3, 4)
PreviousЧто такое срез, примеры, назначение.NextЧто такое класс. Для чего нужны классы.

Last updated 6 years ago

Was this helpful?