От автора: функции в Python применяются для использования кода в нескольких местах в программе, иногда их также называют методом или процедурами. Python предоставляет вам много встроенных функций, таких как print(), но также дает возможность создавать собственные функции.
В этом руководстве мы рассмотрим:
Как определить и вызвать функцию в Python
Значение отступа (пробела) в Python
Как функция возвращает значение?
Аргументы в функциях
Как определить и вызвать функцию в Python
Функция в Python определяется оператором «def», за которым следуют имя функции и круглые скобки.
Давайте определим функцию с помощью команды def func1(): и вызовем ее. Результатом функции будет «I am learning Python function».
Функция print func1() вызывает функцию def func1(): и выводит команду «I am learning Python function». В Python есть набор правил для определения функции.
Любые аргументы или входные параметры должны быть помещены в скобки
Первый оператор функции может быть необязательным оператором — строкой документации или строкой документации функции
Код в каждой функции начинается с двоеточия (:) и должен иметь отступ (пробел)
Оператор return (выражение) исходит из функции, дополнительно передавая значение вызывающей стороне. Оператор return без аргументов совпадает с оператором return None.
Значение отступа (пробела) в Python
Прежде чем мы ознакомимся с функциями Python, важно, чтобы мы понимали правила отступа для объявления функций Python, и эти правила применимы к другим элементам Python, а также к объявлению условий, циклов или переменных.
Python использует стиль отступов для определения кода, так как функции Python не имеют явных начальных или конечных фигурных скобок, указывающих начало и конец функции, для этого они должны полагаться на отступ. Здесь мы возьмем простой пример с командой «print». Когда мы напишем функцию «print» прямо под def func1(): она выдаст «indentation error: expected an indented block».
Затем, когда вы добавите отступ (пробел) перед функцией, она должна выполниться нормально.
По крайней мере, одного отступа достаточно, чтобы ваш код работал успешно. Но в качестве лучшей практики рекомендуется оставить около 3-4 отступов для вызова функции.
Также необходимо, чтобы при объявлении отступа вы сохраняли тот же отступ для всего остального кода. Например, на снимке экрана ниже, когда мы вызываем другой оператор «все еще в func1», и когда он не объявлен прямо под первым оператором, будет отображаться ошибка отступа «unindent does not match any other indentation level.»
Когда мы применим одинаковые отступы для обоих операторов, это даст ожидаемый результат.
Как функция возвращает значение?
Команда «return» в Python указывает, какое значение нужно вернуть вызывающей функции. Давайте рассмотрим это на следующем примере.
Шаг 1) Здесь — мы видим, когда функция не «возвращает». Например, нам нужен квадрат 4, и он должен дать ответ «16» при выполнении кода. Это то, что мы получим, когда мы просто используем код «print x*x». Но когда вы вызовите функцию «print square», она выдаст «None». Это потому, что когда вы вызываете функцию, рекурсия не происходит и опускается до конца функции. Python возвращает «None» из-за сбоя в конце функции.
Шаг 2) Чтобы сделать это более понятным, мы заменим команду вывода на команду присваивания. Давайте проверим вывод.
Когда вы запускаете команду «print square(4)», она на самом деле возвращает значение объекта, поскольку у нас нет какой-либо конкретной функции для запуска, она возвращает «None».
Шаг 3) Теперь мы увидим, как получить вывод, используя команду «return». Когда вы используете функцию «return» и выполняете код, он выдаст «16».
Шаг 4) Функции в Python сами по себе являются объектом, и объект имеет некоторое значение. Здесь мы увидим, как Python обрабатывает объект. При запуске команды «print square» возвращается значение объекта. Поскольку мы не передали ни одного аргумента, у нас нет какой-либо конкретной функции для запуска, поэтому она возвращает значение по умолчанию (0x021B2D30), которое является местоположением объекта. В практической программе на Python вам, вероятно, никогда не понадобится это делать.
Аргументы в функциях
Аргумент — это значение, которое передается функции при ее вызове. Другими словами, на вызывающей стороне это аргумент, а на стороне функции — параметр. Давайте посмотрим, как работает аргумент Python.
Шаг 1) Аргументы объявляются в определении функции. При вызове функции вы можете передать значения для этих аргументов, как показано ниже.
Шаг 2) Чтобы объявить значение аргумента по умолчанию, присвойте ему значение при определении функции.
Пример: x не имеет значений по умолчанию. Значения по умолчанию y = 0. Когда мы предоставляем только один аргумент при вызове функции умножения, Python назначает предоставленное значение для x, сохраняя значение y = 0. Следовательно, умножение x * y = 0.
Шаг 3) На этот раз мы изменим значение на y = 2 вместо значения по умолчанию y = 0, и функция вернет результат (4×2) = 8.
Шаг 4) Вы также можете изменить порядок передачи аргументов в Python. Здесь мы изменили порядок значений x и y на x = 4 и y = 2.
Шаг 5) Несколько аргументов также могут быть переданы в виде массива. Здесь в примере мы вызываем несколько аргументов (1,2,3,4,5), вызывая функцию (*args). Пример: мы объявили несколько аргументов как число (1,2,3,4,5) при вызове функции (*args); вывод будет (1,2,3,4,5).
Советы:
В Python 2.7. перезагрузка функций не поддерживается. Перезагрузка функций — это возможность создавать несколько методов с одинаковым именем с разной реализацией. Перезагрузка функций полностью поддерживается в Python 3
Существует путаница между методами и функциями. Методы в Python связаны с экземплярами объекта, а функция — нет. Когда Python вызывает метод, он связывает первый параметр этого вызова с соответствующей ссылкой на объект. Проще говоря, автономная функция в Python — это «функция», тогда как функция, которая является атрибутом класса или экземпляра, является «методом».
Вот полный код Python 3
#define a function def func1(): print ("I am learning Python function") print ("still in func1") func1() def square(x): return x*x print(square(4)) def multiply(x,y=0): print("value of x=",x) print("value of y=",y) return x*y print(multiply(y=2,x=4))
Вот полный код Python 2
#define a function def func1(): print " I am learning Python function" print " still in func1" func1() def square(x): return x*x print square(4) def multiply(x,y=0): print"value of x=",x print"value of y=",y return x*y print multiply(y=2,x=4)
Заключение
Функция в Python — это фрагмент кода для повторного использования, который применяется для выполнения одного связанного действия.
Функция определяется оператором def
Блок кода внутри каждой функции начинается с двоеточия (:) и должен иметь отступ (пробел)
Любые аргументы или входные параметры должны быть помещены в круглые скобки
После объявления функции перед кодом должен быть хотя бы один отступ
Одинаковый стиль отступа должен поддерживаться во всем коде внутри def функции
Три или четыре отступа считаются рекомендованной практикой
Вы можете использовать команду «return» для возврата значений в вызов функции.
Python выведет случайное значение, например (0x021B2D30), когда аргумент не передан вызывающей функции.
На вызывающей стороне это аргумент, а на стороне функции это параметр
Когда мы предоставляем только один аргумент при вызове функции умножения или любой другой функции, Python назначает другой аргумент по умолчанию
Python также позволяет изменить порядок аргументов
Источник: https://www.guru99.com
Редакция: Команда webformyself.