Функции Python

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

Вы можете передавать данные (называемые параметрами) в функцию.

Функция может возвращать данные в качестве результата.

для создания функции

В Python используется def Ключевое слово для определения функции:

Пример

def my_function():
  print("Hello from a function")

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

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

Пример

def my_function():
  print("Hello from a function")
my_function()

Запуск примера

Параметр

Информация может передаваться в функцию в качестве параметра.

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

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

Пример

def my_function(fname):
  print(fname + " Gates")
my_function("Bill")
my_function("Steve")
my_function("Elon")

Запуск примера

Значение по умолчанию

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

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

Пример

def my_function(country = "China"):
  print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Запуск примера

Передача списка

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

Например, если вы отправите список в качестве параметра, он останется списком (список) после достижения функции:

Пример

def my_function(food):
  for x in food:
    print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

Запуск примера

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

Чтобы функция возвращает значение, используйте: return Указание:

Пример

def my_function(x):
  return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

Запуск примера

Ключевые параметры

Вы также можете отправлять параметры с помощью синтаксиса key = value.

Порядок параметров не имеет значения.

Пример

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

Запуск примера

В документации Python слово «ключевые параметры» обычно сокращается до kwargs.

Дополнительные параметры

Если вы не знаете, сколько параметров будет передано вашей функции, добавьте * перед именем параметра в определении функции.

Таким образом, функция будет принимать параметр-туплю и сможет соответствующим образом доступа к элементам:

Пример

Если количество параметров неизвестно, добавьте * перед именем параметра:

def my_function(*kids):
  print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

Запуск примера

Оператор pass

Определение функции не может быть пустым, но если вы по какой-либо причине написали пустое определение функции, пожалуйста, используйте оператор pass, чтобы избежать ошибок.

Пример

def myfunction:
  пропустить

Запуск примера

Рекурсия

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

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

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

В этом примере:tri_recursion() является функцией, которая определяет себя ("recurse"). Мы используем переменную k в качестве данных и уменьшаем её (-1) каждый раз при вызове рекурсии. Когда условие не больше 0 (например, когда оно равно 0), рекурсия заканчивается.

Для новых разработчиков может потребоваться время, чтобы понять, как это работает,最好的 способ - это протестировать и изменить его.

Пример

Пример рекурсии:

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  возврат result
print("\n\nРезультаты примера рекурсии")
tri_recursion(6)

Запуск примера