Функции Python
- Предыдущая страница Цикл For в Python
- Следующая страница Lambda в 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)
- Предыдущая страница Цикл For в Python
- Следующая страница Lambda в Python