Основные сведения о функциях 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'
Нужна помощь? Обратитесь к руководству по устранению неполадок или предоставьте отзыв, сообщив о конкретной проблеме.