Функции Python: 7 примеров. Базовые, встроенные и пользовательские функции
В этой статье мы просто приведём практические примеры работы функций в Python. Рассмотрим базовые, встроенные и пользовательские функции, а также функции с параметрами, возвращаемым значением и типом данных.
Функции в Python представляют собой фрагменты кода в блоке, который имеет назначенное имя. Функции принимают ввод, осуществляют вычисления либо какое-нибудь действие и возвращают вывод. И, разумеется, функции упрощают работу с кодом, делая возможным его повторное использование.
Базовые функции Python
Давайте рассмотрим пример функции Python, принимающей 2 параметра, а также вычисляющей сумму и возвращающей вычисленное значение:
#определяем и объявляем функцию def calculate_sum(a,b): sum = a+b return sum #инструкция, приведённая ниже, называется вызовом функции print(calculate_sum(2,3)) # 5
Кроме того, в Python есть встроенные и пользовательские функции.
Пользовательские функции Python
Объявление пользовательской функции осуществляется с применением ключевого слова def. При этом оно должно сопровождаться именем пользовательской функции:
def calculate_si_amount(principal, rate, time): interest = (principal*rate*time)/100 return principal+interest
В данной функции окончательная сумма может быть рассчитана посредством использования простого процента к основной сумме. Именем функции является Calculate_si_amount. Что касается principal, time и rate — то это параметры, а функция возвращает рассчитанные данные.
Для пользовательской функции можно не принимать возвращаемые значения и параметры. На нижеследующем примере мы видим пользовательскую функцию, не принимающую никаких параметров, зато возвращающую данные.
from random import seed, random from random import random def generate_random_number(): seed(10) return random()
Встроенные функции Python
В Python существует много встроенных функций. Одна из наиболее часто используемых —
print("Всем привет") print(len("Меня зовут Андрей"))
Ещё популярны такие функции, как
Параметры функции в Python
В языке программирования Python функция может иметь параметры по умолчанию:
def multiply(a, b=10): return a*b multiply(12) # 120 multiply(2, 3) # 6 multiply(b=9) # Ошибка: None*9 недопустимо
В вышеописанной функции, когда пользователь не задает 2-й параметр b, он предполагает, что параметр равен 10, однако при этом нужно предоставить 1-й параметр.
Неизвестное количество параметров в функции Python
Когда в функции, допустим, четыре параметра, а для второго параметра определено значение по умолчанию, то третьему и четвёртому параметрам тоже необходимо присвоить значение по умолчанию.
Когда число параметров неизвестно, тогда в определение функции в качестве одного из параметров добавляется
def calculate_sum(a, *args): sum = a for i in args: sum += i return sum calculate_sum(10) # 10 calculate_sum(10, 11, 12) # 33 calculate_sum(1, 2, 94, 6, 2, 8, 9, 20, 43, 2) # 187
Так же
def print_names(f1, l1, **kwargs): print(f1, l1, end=' ') for key in kwargs: print(key, kwargs[key], end=' ') print_names("andrey", "master") print_names("andrey", "master", alex="john", leon="elene") # andrey master andrey master alex john leon elene
Обратите внимание, что фрагмент выше имеет ссылку на цикл for.
Тип данных для возвращаемого значения и параметров в Python
Определение типов данных для параметров функции в Python может быть полезным:
def prime_numbers(x:int) -> (int, list): l=[] for i in range(x+1): if checkPrime(i): l.append(i) return len(l), l
В нашем примере определение функции указывает, что нужен 1 параметр типа int и вернёт два значения типа list и int соответственно.
Возвращаемое значение функции в Python
Язык программирования Python даёт возможность функции возвращать несколько значений.
def prime_numbers(x): l=[] for i in range(x+1): if checkPrime(i): l.append(i) return len(l), l no_of_primes, primes_list = prime_numbers(100)
В нашем случае возвращаются 2 значения. Если данная функция вызывается, то возвращаемые значения сохраняются одновременно в 2-х переменных. Если же функция не возвращает ничего, то она неявно возвращает None.