Функции в Python для начинающих
В этой части мы изучим функции — составные инструкции, которые могут принимать данные ввода, выполнять указания и возвращать данные вывода. Функции позволяют определять и повторно использовать определенную функциональность в компактной форме.
Вызвать функцию — значит передать ей входные данные, необходимые для выполнения и возвращения результата. Когда вы передаете функции входные данные, это называется передача параметра функции.
Функции в Python похожи на математические функции из алгебры. Например, в алгебре функция определяется как-то так:
f(x) = x * 2
Левая часть определяет функцию f
, принимающую один параметр, x
.
А правая часть — это определение функции, которое использует переданный параметр x
,
чтобы произвести вычисление и вернуть результат. В этом случае значением функции является ее параметр, умноженный на два.
Как в Python функция записывается следующим образом: имя_функции(параметры_через_запятую)
.
Чтобы вызвать функцию, после ее имени нужно указать круглые скобки и поместить внутрь параметры,
отделив каждый из них запятой. Для создания функций в Python выберите ее имя, определите параметры, укажите, что функция должна делать
и какое значение возвращать.
def имя_функции(параметры):
определениие_функции
Математическая функция f(x) = x * 2
в Python будет выглядеть вот так:
def f(x):
return x * 2
Ключевое слово def
сообщает Python, что вы определяете функцию.
После def
вы указываете имя функции; оно должно отвечать тем же правилам, что и имена переменных.
Согласно конвенции, в имени функции нельзя использовать заглавные буквы, а слова должны быть разделены подчеркиваниемвот_так
.
Как только вы присвоили своей функции имя, укажите после него круглые скобки. Внутри скобок должен содержаться один или несколько параметров.
После скобок ставится двоеточие, а новая строка начинается с отступа в четыре пробела. Любой код с отступом в четыре пробела после двоеточия является телом функции. В этом случае тело нашей функции состоит только из одной строки:
return x * 2
Ключевое слово return
используется для определения значения,
которое функция возвращает при вызове.
Чтобы вызвать функцию в Python, мы используем синтаксис имя_функции(параметры, через, запятую)
.
Ниже описан вызов функции f
из предыдущего примера с параметром 2
.
f(2)
Консоль ничего не вывела. Можно сохранить вывод вашей функции в переменной и передать ее функции print
.
# Продолжение
# предыдущего примера
def f(x):
return x * 2
result = f(2)
print(result) # 4
Вы можете сохранить результат, возвращаемый вашей функцией, в переменной и использовать это значение в программе позднее.
def f(x):
return x + 1
z = f(4)
if z == 5:
print("z равно 5")
else:
print ("z не равно 5")
У функции может быть один параметр, несколько параметров или вообще их не быть. Чтобы определить функцию, не требующую параметров, оставьте круглые скобки пустыми.
def f():
return 1 + 1
result = f()
print(result) # 2
Если хотите, чтобы функция принимала больше одного параметра, отделите каждый параметр в скобках запятой.
def f(x, y, z):
return x + y + z
result = f(1, 2, 3)
print(result) # 6
Наконец, функция не обязана содержать инструкцию return.
Если функции нечего возвращать, она возвращает значение None
.
def f():
z = 1 + 1
result = f()
print(result) # None
Обязательные и необязательные параметры
Функция может принимать параметры двух типов. Те, что встречались вам до этого, называются обязательными параметрами. Когда пользователь вызывает функцию, он должен передать в нее все обязательные параметры, иначе Python сгенерирует исключение.
В Python есть и другой вид параметров — опциональные. Опциональные параметры определяются
с помощью следующего синтаксиса: имя_функции(имя_параметра = значение_параметра)
.
Как и обязательные, опциональные параметры нужно отделять запятыми. Ниже приведен пример функции,
в коде которой используется опциональный параметр.
def f(x=2):
return x**x
print (f()) # 4
print (f(4)) # 16
Сначала функция вызывается без передачи параметра. Так как параметр необязательный, x
автоматически становится равен 2
,
и функция возвращает 4
.
Затем та же функция вызывается с параметром 4
. То есть x
будет равен 4
и функция вернет 16
.
Вы можете определить функцию, которая принимает как обязательные,
так и опциональные параметры, но обязательные нужно определять в первую очередь.
def add(x, y=10):
return x + y
result = add(2)
print(result)