Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Как работают функции в Python?

6 ноября 2022 г. Archy Просмотров: 3675 RSS
Python для начинающих

функции в Python

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

Создание функции

В Python функция определяется с помощью ключевого слова def:

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

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

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

def my_function():
  print("Hello from a function")
my_function()
Для школьников и студентов был создан портал Udarenie.org где вы можете узнать куда падает ударение в разных словах русского языка. Чтение слов используя правильное ударение свидетельствуют об отличных знаниях русского языка.

Аргументы

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

def my_function(fname):
  print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")

Параметры или аргументы?

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

С точки зрения функции:

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

Количество аргументов

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

Эта функция ожидает 2 аргумента и получает 2 аргумента:

def my_function(fname, lname):
  print(fname + " " + lname)
my_function("Emil", "Refsnes")

Если вы попытаетесь вызвать функцию с 1 или 3 аргументами, вы получите ошибку.

Произвольные аргументы, *args

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

def my_function(*kids):
  print("The youngest child is " + kids[2])
my_function("Emil", "Tobias", "Linus")

Аргументы по ключевым словам

Вы также можете передавать аргументы с помощью синтаксиса "ключ = значение". В этом случае порядок аргументов не имеет значения.

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

В документации по Python фраза Keyword Arguments часто сокращается до kwargs.

Произвольные аргументы ключевых слов, **kwargs

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

def my_function(**kid):
  print("His last name is " + kid["lname"])
my_function(fname = "Tobias", lname = "Refsnes")

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

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

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

Передача списка в качестве аргумента

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

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))

Рекурсия

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
  return result
print("\n\nRecursion Example Results")
tri_recursion(6)