Функция — это блок кода, который запускается только при вызове.
Вы можете передавать данные, известные как параметры, в функцию.
В результате функция может возвращать данные.
Python Создание функции
В Python функция определяется с помощью ключевого слова: def.
def my_function():
print('Привет из функции')
Python Вызов функции
Чтобы вызвать функцию, используйте имя функции, за которым следуют круглые скобки:
def my_function():
print('Привет из функции')
my_function()
Попробуйте сами »
Python Аргументы
Информация может передаваться в функции в качестве аргументов.
Аргументы указываются после имени функции в круглых скобках. Вы можете добавить столько аргументов, сколько хотите, просто разделите их запятой.
В следующем примере есть функция с одним аргументом (fname).Когда функция вызывается, мы передаем имя, которое используется внутри функции для вывода полного имени:
def my_function(fname):
print(fname + ' Refsnes')
my_function('Emil')
my_function('Tobias')
my_function('Linus')
Попробуйте сами »
Аргументы часто сокращаются до args в документации по Python
Python Параметры или аргументы?
Параметры и аргументы терминов могут использоваться для одного и того же: информации, которая передается в функцию.
С точки зрения функции:
Параметр — это переменная, указанная в скобках в определении функции.
Аргумент — это значение, которое передается функции при ее вызове.
Python Количество аргументов
По умолчанию функция должна вызываться с правильным количеством аргументов. Это означает, что если ваша функция ожидает 2 аргумента, вы должны вызывать функцию с 2 аргументами, не больше и не меньше.
Эта функция ожидает 2 аргумента и получает 2 аргумента:
def my_function(fname, lname):
print(fname + ' ' + lname)
my_function('Emil', 'Refsnes')
Попробуйте сами »
Если вы попытаетесь вызвать функцию с 1 или 3 аргументами, вы получите ошибку:
Эта функция ожидает 2 аргумента, но получает только 1:
def my_function(fname, lname):
print(fname + ' ' + lname)
my_function('Emil')
Попробуйте сами »
Python Произвольные аргументы, *args
Если вы не знаете, сколько аргументов будет передано в вашу функцию, добавьте
* перед именем параметра в определении функции.
Таким образом, функция получит кортеж аргументов и сможет получить соответствующий доступ к элементам:
Если количество аргументов неизвестно, добавьте * перед именем параметра:
def my_function(*kids):
print('Самый младший ребенок
' + kids[2])
my_function('Emil', 'Tobias', 'Linus')
Попробуйте сами »
Произвольные агументы часто сокращаются до args в документации по Python
Python Аргументы ключевых слов
Вы также можете отправлять аргументы с синтаксисом ключ = значение syntax.
Таким образом, порядок аргументов не имеет значения.
def my_function(child3, child2, child1):
print('Самый младший ребенок ' + child3)
my_function(child1 = 'Emil', child2 = 'Tobias', child3 = 'Linus')
Попробуйте сами »
Фраза Аргументы ключевого слова часто сокращается до kwargs в документации Python.
Python Произвольные аргументы ключевого слова, **kwargs
Если вы не знаете, сколько ключевых слов будет передано в вашу функцию, добавьте две звездочки:
** перед именем параметра в определении функции.
Таким образом, функция получит словарь аргументов и сможет соответственно получить доступ к элементам:
Если количество аргументов ключевого слова неизвестно, добавьте двойной
** перед именем параметра:
def my_function(**kid):
print('Его фамилия ' + kid['lname'])
my_function(fname = 'Tobias', lname = 'Refsnes')
Попробуйте сами »
Произвольные аргументы Kword часто сокращаются до **kwargs в документации Python.
Python Значение параметра по умолчанию
В следующем примере показано, как использовать значение параметра по умолчанию.
Если мы вызываем функцию без аргумента, она использует значение по умолчанию:
def my_function(country = 'России'):
print('Я из ' + country)
my_function('Швеции')
my_function('Индии')
my_function()
my_function('Бразилии')
Попробуйте сами »
Python Передача списка в качестве аргумента
Вы можете отправить аргумент любого типа в функцию (строка, число, список, словарь и т. д.), и внутри функции он будет рассматриваться как тот же тип данных.
Например. если вы отправите список в качестве аргумента, он все равно будет списком, когда он достигнет функции:
def my_function(food):
for x in food:
print(x)
fruits = ['яблоко', 'банан', 'вишня']
my_function(fruits)
Попробуйте сами »
Python Возвращаемые значения
Чтобы функция возвращала значение, используйте оператор return:
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
Попробуйте сами »
Python Оператор pass
Функции не могут быть пустыми, но если по какой-то причине у вас есть определение
функции без содержимого, добавьте оператор pass чтобы избежать ошибки.
def myfunction():
pass
Попробуйте сами »
Python Рекурсия
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\nРезультаты примера рекурсии")
tri_recursion(6)
Попробуйте сами »