Учебники

11) Функции в Python

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

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

В этом уроке мы узнаем

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

Функция в Python определяется оператором «def», за которым следуют имя функции и круглые скобки (())

Пример:

Давайте определим функцию с помощью команды def func1 (): и вызовем функцию. Результатом функции будет «Я изучаю функцию Python».

Учебник по функциям Python - определение, вызов, отступы и аргументы

Функция print func1 () вызывает нашу функцию def func1 (): и печатает команду « Я изучаю функцию Python None ».

В Python есть набор правил для определения функции.

  • Любые аргументы или входные параметры должны быть помещены в эти скобки
  • Первый оператор функции может быть необязательным оператором — строкой документации или строкой документации функции
  • Код в каждой функции начинается с двоеточия (:) и должен иметь отступ (пробел)
  • Оператор return (выражение) выходит из функции, дополнительно передавая значение вызывающей стороне. Оператор return без аргументов совпадает с оператором return None.

Значение отступа (пробела) в Python

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

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

Учебник по функциям Python - определение, вызов, отступы и аргументы

Теперь, когда вы добавляете отступ (пробел) перед функцией «печать», он должен печататься как положено.

Учебник по функциям Python - определение, вызов, отступы и аргументы

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

Также необходимо, чтобы при объявлении отступа вы сохраняли тот же отступ для всего остального кода . Например, на снимке экрана ниже, когда мы вызываем другое выражение «все еще в func1», и когда оно не объявлено прямо под первым оператором печати, будет отображаться ошибка отступа «unindent не соответствует ни одному другому уровню отступа».

Учебник по функциям Python - определение, вызов, отступы и аргументы

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

Учебник по функциям Python - определение, вызов, отступы и аргументы

Как функция возвращает значение?

Команда возврата в Python указывает, какое значение нужно вернуть вызывающей функции.

Давайте разберемся с этим на следующем примере

Шаг 1) Здесь — мы видим, когда функция не «возвращает». Например, нам нужен квадрат 4, и он должен дать ответ «16» при выполнении кода. Что это дает, когда мы просто используем код «print x * x», но когда вы вызываете функцию «print square», она выдает «None» в качестве вывода. Это потому, что когда вы вызываете функцию, рекурсия не происходит и падает до конца функции. Python возвращает «None» для сбоя в конце функции.

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 2) Чтобы сделать это более понятным, мы заменим команду печати на команду присваивания. Давайте проверим вывод.

Учебник по функциям Python - определение, вызов, отступы и аргументы

Когда вы запускаете команду «print square (4)», она на самом деле возвращает значение объекта, поскольку у нас нет какой-либо конкретной функции для запуска, она возвращает «None».

Шаг 3) Теперь мы увидим, как получить вывод, используя команду «return». Когда вы используете функцию «return» и выполняете код, он выдаст «16».

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 4) Функции в Python сами по себе являются объектом, и объект имеет некоторое значение. Здесь мы увидим, как Python обрабатывает объект. При запуске команды «печать квадрата» возвращается значение объекта. Поскольку мы не передали никакого аргумента, у нас нет какой-либо конкретной функции для запуска, поэтому она возвращает значение по умолчанию (0x021B2D30), которое является местоположением объекта. В практической программе на Python вам, вероятно, никогда не понадобится это делать.

Учебник по функциям Python - определение, вызов, отступы и аргументы

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

Аргумент — это значение, которое передается функции при ее вызове.

Другими словами, на вызывающей стороне это аргумент, а на стороне функции — параметр.

Давайте посмотрим, как работает Python Args —

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

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 2) Чтобы объявить значение аргумента по умолчанию, присвойте ему значение при определении функции.

Учебник по функциям Python - определение, вызов, отступы и аргументы

Пример: x не имеет значений по умолчанию. Значения по умолчанию y = 0. Когда мы предоставляем только один аргумент при вызове функции умножения, Python назначает предоставленное значение для x, сохраняя значение y = 0. Следовательно, умножение x * y = 0

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 3) На этот раз мы изменим значение на y = 2 вместо значения по умолчанию y = 0, и он вернет выходной результат как (4×2) = 8.

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 4) Вы также можете изменить порядок передачи аргументов в Python. Здесь мы изменили порядок значений x и y на x = 4 и y = 2.

Учебник по функциям Python - определение, вызов, отступы и аргументы

Шаг 5) Несколько аргументов также могут быть переданы в виде массива. Здесь в примере мы вызываем несколько аргументов (1,2,3,4,5), вызывая функцию (* args).

Пример: мы объявили несколько аргументов как число (1,2,3,4,5) при вызове функции (* args); выводит вывод как (1,2,3,4,5)

Учебник по функциям Python - определение, вызов, отступы и аргументы

Советы :

  • В Python 2.7. Перегрузка функций не поддерживается в Python. Перегрузка функций — это возможность создавать несколько методов с одинаковым именем с разной реализацией. Перегрузка функций полностью поддерживается в 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
  • Для лучших практик три или четыре абзаца считаются лучшими перед утверждением
  • Вы можете использовать команду «return» для возврата значений в вызов функции.
  • Python напечатает случайное значение, например (0x021B2D30), когда аргумент не передается вызывающей функции. Пример «функция печати».
  • На вызывающей стороне это аргумент, а на стороне функции это параметр
  • Значение по умолчанию в аргументе — когда мы предоставляем только один аргумент при вызове функции умножения или любой другой функции, Python назначает другой аргумент по умолчанию
  • Python также позволяет изменить порядок аргументов