Основные сведения о функциях Python

Завершено

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

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

Чем меньше в программе повторений и больших функций, тем проще ее читать и обслуживать. Ее также проще отлаживать, если что-то пошло не так.

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

Важно!

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

Функции без аргументов

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

def rocket_parts():
    print("payload, propellant, structure")

В этом случае rocket_parts — это имя функции. За этим именем следуют пустые круглые скобки, указывающие, что аргументы не требуются. Наконец, идет код с отступом в четыре пробела. Чтобы использовать функцию, ее необходимо вызвать по имени с помощью круглых скобок:

rocket_parts()
payload, propellant, structure

Функция rocket_parts() не принимает никаких аргументов и выводит утверждение о силе тяжести. Если необходимо использовать значение, возвращаемое функцией, выходные данные функции можно назначить переменной:

output = rocket_parts()
payload, propellant, structure
output is None
True

Возможно, вас удивит, что значение переменной output — None. Это вызвано тем, что функция rocket_parts() не возвратила значение явным образом. В Python, если функция не возвращает значение явным образом, она неявно возвращает None. Если изменить функцию, чтобы она возвращала стоку, у переменной output будет другое значение:

def rocket_parts():
    return "payload, propellant, structure"
output = rocket_parts()
output
payload, propellant, structure

Если необходимо использовать значение функции, эта функция должна его возвращать явно. В противном случае возвращается значение None.

Примечание.

Не нужно всегда назначать возврат функции. В большинстве случаев, когда функция не возвращает значение (или значения) явно, это означает, что вам не нужно назначать или использовать неявное возвращаемое значение None.

Обязательные и необязательные аргументы

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

Пример встроенной функции с обязательным аргументом — any(). Эта функция принимает итерируемый объект (например, список) и возвращает значение True, если какой-либо элемент в итерируемом объекте имеет значение True. В противном случае возвращается значение False.

any([True, False, False])
True
any([False, False, False])
False

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

 any()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: any() takes exactly one argument (0 given)

Можно убедиться, что некоторые функции допускают необязательные аргументы, используя другую встроенную функцию с именем str(). Эта функция создает строку из аргумента. Если аргумент не передается, возвращается пустая строка:

str()
''
str(15)
'15'