Функция def в питоне

Функция def в питоне

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

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

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

Первой инструкцией в теле может быть литерал строки, который будет являться документацией для данной функции (строка документации — «docstring»). Некоторые утилиты и среды разработки используют такие строки для формирования интерактивной справки. Документировать код считается хорошим тоном.

В примере выше объявляется функция do_work , с формальными параметрами work и reverse . Функция задокументирована (испольузется формат описания сигнатуры reStructuredText). Кроме строки документации тело функции не содержит инструкций, тем не менее функция возвращает None .

Определение функции описывает пользовательский «объект функции» и является исполняемой инструкцией. В ходе исполнения происходит связывание имени функции в текущем локальном пространстве имён (локальной символьной таблице) с «объектом функции» — обёрткой вокруг исполняемого кода функции. Объект функции содержит ссылку на текущее глобальное пространство имён, которое будет использовано при вызове функции. Объект функции может быть в последующем связан и с другим именем (это можно использовать для переименования функций и создания псевдонимов).

Более того, ничто не мешает использовать «объект функции» как любой другой объект (например: передавать в функцию, использовать в качестве значения в словаре и т.п.).

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

Аргументы, с которыми была вызвана функция, также оказываются в её локальной символьной таблице.

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

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

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

Создать функцию в Python

Создание функции в Python, начинается с объявления ключевого слова def (определить), затем идет название функции с круглыми скобками и двоеточие (:). Затем, каждый раз начиная с новой строки и с отступом в 4 пробела, записываются те самые инструкции. Код с инструкциями называется телом функции.

def func_name():
инструкция_1
инструкция_2
. и.т.д

Вызов функции в Python

Когда функция написана, то сама по себе она не будет выполняться. Функцию надо вызвать, сделать это можно в разных местах программы. Как вызывается функция? Мы обращается к имени функции, не забывая указать пару круглых скобок на конце. Без скобок функция не выполнится. Нельзя функцию вызвать до её объявления.

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

Читайте также:  Программа для работы с отсканированными документами

Нужно вывести на экран тело функции.

  1. объявляем функцию
  2. пишем инструкцию в теле функции
  3. вызов функции
  4. получаем результат выполнения тела функции

def f_example() #1
print(‘тело функции’) #2
f_example() #3
тело функции #4

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

Зачем мы пишем пустые скобочки на конце названия функции? Надо сказать, что не всегда они пустые. В скобочках могут передаваться аргументы, но не обязательно. Аргументы — это входные данные, которые передаются функции при её создании и вызове. Если функция создается с аргументами, то и вызывается с аргументами.

def f_arg(z):
#тело функции

Главное предназначение функции — это обработка полученных данных и получение результата. Давайте рассмотрим пример функции, которая умножает передаваемое число на два и распечатывает готовый результат. В скобках указываем аргумент x, значение которого функция получит позже. Далее пишем инструкции, что должна делать сама функция multiplay. Функция умножает число на два и распечатывает результат. Вызываем функцию multiplay(4) и передаем в скобках значение 4, с которым функция должна работать. В результате выполнения кода, на экран выведется число 8.

Что происходит при вызове функции? Когда мы вызываем функцию и передаем ей аргумент (4), то этот аргумент внутри функции получает название x и подставляется вместо него в инструкциях.

def multiplay(x):
result = x * 2
print(result)
multiplay(4)
8

Возвращаемое значение функции (return)

Когда функция просто выводит что-то на экран print(x), то она ничего не возвращает. Однако функция может получать на входе какие-то данные, обрабатывать их и возвращать полученное значение. С помощью оператора return, функция возвращает какое-то значение, при её вызове.

Мы в скобочках передаем аргумент и говорим: "Верни нам при вызове сумму аргумента n и числа 10". Далее вызываем функцию с аргументом 5, присваиваем результат вызова функции — переменной b, программа подставляет 5 вместо n и нам возвращается число 15.

def func_r(n):
return 10+n
b = func_r(5)
print(b)
15

def multi(a, b):
return a*b
c = multi(2, 3)
print(c)
6

Функция может не принимать на вход аргументы, но возвращать какое-то значение.

def func_v():
return 7
d = func_v()
print(d)
7

Заключение

Итак, функции в Python, могут быть:

  • без аргументов вообще
  • без аргументов, но с возвращаемым значением
  • с аргументами и возвращаемым значением

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

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

    Читайте также:  Как войти в биос материнской платы gigabyte

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

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

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

    Программист может написать собственную функцию или использовать готовые решения языка, если они есть, конечно. Например, лучше самому не написать функцию для определения максимального числа, а воспользоваться стандартной max() .

    Объявление

    Объявляя функцию, нужно следовать определенным правилам:

    • Объявление происходит с помощью ключевого слова def , за ним идёт имя функции и круглые скобки ().
    • Аргументы, передаваемые в функцию, должны находится в круглых скобках. Там же можно определить их значения по умолчанию, указав их после знака равно.
    • Перед основным содержимым желательно включить строку документации (docstring), которая обычно описывает назначение и основные принципы работы функции.
    • Тело функции начинается после знака двоеточия. Важно не забыть об отступах.
    • Чтобы выйти из функции в Python, используют оператор return [значение] . Если оператор опущен, будет возвращено значение None .

    Функцию можно объявить где угодно: внутри модуля, класса или другой функции. Если она объявляет внутри класса, то называется методом класса и вызывается так: class_name.function() .

    Синтаксис объявления

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

    Пример кода

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

    Вызов

    После определения функции её можно вызвать в любой точке скрипта, как в теле самого скрипта, так и в теле другой функции:

    Значение функции можно сразу передать в переменную или в другую функцию:

    Необязательные параметры

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

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

    Вывод будет следующим:

    Функция с переменным числом аргументов

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

    Для того чтобы функция могла принять переменное количество аргументов, перед именем аргумента ставится символ ” * “. Когда программист передаёт аргументы, они записываются в кортеж, имя которого соответствует имени аргумента:

    Вместо одного символа звёздочки можно использовать два, тогда аргументы будут помещаться не в список, а в словарь:

    Анонимные функции

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

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

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

    Синтаксис

    Синтаксис лямбда функции в Python 3 предусматривает использование только одного выражения: lambda arg1, arg2, … argn: выражение .
    На практике они работают так:

    Возврат значений

    С помощью оператора return из функции можно вернуть одно или несколько значений. Возвращаемым объектом может быть: число, строка, None.

    Читайте также:  Ошибка длл как исправить

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

    Вот пример когда возвращается список:

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

    Рекурсия

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

    Рекурсию рекомендуется использовать только там, где это действительно необходимо. Интерпретатор Python автоматически выделяет память для выполняющейся функции, если вызовов самой себя будет слишком много, это приведёт к переполнению стека и аварийному завершению программы. Следующий код вызовет исключение “RecursionError”, которая показывает, что превышен максимальный лимит рекурсии.

    Узнать максимальный лимит и его изменить можно с помощью getrecursionlimit() и setrecursionlimit(предел) из библиотеки sys.

    Один из примеров применения рекурсии – это расчёт чисел Фибоначчи.

    Пустая функция

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

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

    Области видимости

    Область видимости — важная составляющая любого языка программирования. С её помощью в одном модуле можно использовать одно и то же имя переменной несколько раз.

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

    В Python существует две области видимости:

    • Глобальная. Переменные объявляются непосредственно внутри модуля и доступны из любой точки программы.
    • Локальная. Переменные объявляются в теле функции и доступны только внутри неё.

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

    Подробнее про области видимости можно прочитать в отдельной статье на сайте.

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

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

    • print() Выводит объекты на экран или в файл. Пример использования print("output string", end="") . Принимает аргументы:
    • object — то, что нужно вывести;
    • sep — разделитель, который ставиться между объектов, по умолчанию — пробел;
    • end — окончание после объекта, например управляющий символ “
      ”;
    • file — атрибут, позволяющий передать объект в файл (по умолчанию выводит на экран);
  • len() Возвращает количество элементов, содержащихся в кортеже, словаре или списке.
  • str() Преобразует переданный в качестве аргумента объект в строку.
  • int() Преобразует объект в целое число. Если передать в качестве аргумента строку, вызовется ошибка, целое число выведется без изменений, а у числа с плавающей точкой отбросится дробная часть.
  • range() Возвращает диапазон значений, в основном используется в условии цикла for.
  • bool() Приводит объект в логическому типу. Например, 0 — False , а 1 — True .
  • sum() Возвращает сумму переданных элементов.
  • min() и max() Возвращают минимальный и максимальный элемент из переданных.
  • type() Возвращает тип объекта, обычно используется при отладке кода.
  • dir() Возвращает список имён, доступных в локальной области видимости, или атрибуты объекта, переданного в качестве аргумента.
  • help() Выводит информацию о переданном объекте из встроенной справочной системы. Её целесообразно использовать только в интерактивном режиме Python интерпретатора.
  • Ссылка на основную публикацию
    Формула частота в excel
    При анализе данных периодически возникает задача подсчитать количество значений, попадающих в заданные интервалы "от и до" (в статистике их называют...
    Уравнение плоскости по двум пересекающимся прямым
    УСЛОВИЕ: Составить уравнение плоскости, проходящей через две параллельные прямые x-2/3=y+1/2=z-3/-2 x-1/3=y-2/2=z+3/-2 Добавил yelymcheav , просмотры: ☺ 1976 ⌚ 2019-05-14 15:35:56....
    Уравнение баланса мощностей формула
    При решений электротехнических задач, часто нужно проверить правильность найденных значений. Для этого в науке ТОЭ, существует так называемый баланс мощностей....
    Формула тейлора с остатком в форме пеано
    Формулировка: Если существует , то представима в следующем виде: Это выражение называется формулой Тейлора с остаточным членом в форме Пеано...
    Adblock detector