Функции и их аргументы в Phyton
Сегодня будет рассмотрена одна из самых важных частей не только языка программирование пайтон, но и в принципе программирование. Конечно, речь идет о функциях; о том, как они создаются, для чего нужны, как использовать и не только. Тема действительно очень важна, поэтому изучить ее надо основательно.
def (функция/метод)
Специальный кусок кода, к которому можно обращаться многократно называется функцией или методом. По сути, функция и метод одно и то же, отличаются только названия, но это тема уже будущих уроков. Так вот, в функцию передаются определенные значения, которые называют аргументы (могут и не передаваться), она обрабатывает все и возвращает результат (может и не возвращать).
Функции и их аргументы
Аргументы — это те значения, которые передаются в функцию. Они могут могут быть как обязательными, так и не обязательными. Небольшое примечание: необязательные аргументы должны быть самыми последними. Давайте все еще будет рассмотрено на примерах.
Рецепт создания функции в python
Рецепт создания функции в питоне довольно прост:
- Для начала нужно прописать ключевое слово def.
- Далее вписать названия функции, в скобках аргументы, которые она будет принимать и поставить двоеточие.
- Весь код, который будет следовать далее называется телом функции.
Создание функций
Пример создания и использование функции:
defsum(a, b):
return a + b
Чтобы вызвать ее в коде нужно прописать название и в скобках записать аргументы.
print(sum(1,2)) => 3
Пример кода с необязательным аргументом:
defmultiply(a,b,c = 4):
return a * b * c
C — необязательный аргумент. Если мы его не передадим, то подставится значение по умолчанию (в данном случае 4). А вызов функции точно такой же.
Основные встроенные функции в Python
Разработчики пайтона заботятся о нас и поэтому создали внушительные количество готовых функций. Мы рассмотрим только их часть.
print() — самая популярная и распространенная функция, которая выводит значение в консоль.
len() — возвращает количество элементов, которое хранится в словаре, кортеже или списке.
str(), int(), bool() — они соответственно приводят объект к строке, целому числу или логическому типу. Про int() еще стоит сказать, что если передать строку — будет ошибка, а если число с плавающей точкой, то останется только целая часть, а остальная отбросится.
min(), max() — возвращают минимальный и максимальный элемент, который передан в них.
sum() — возвращает сумму элементов.
type() — выдает тип объекта.
Функция с переменным числом аргументов
Если необходимо создать функцию, которая будет принимать разное количество аргументов, а это очень часто оказывается полезным, то нужно поставить знак * перед ее именем. Получается, что мы создаем список внутри функции, просто записываем его более удобным образом. Рассмотрим на примере:
def f(*args):
for i inargs:
print(i * 2)
f(1,2,3) => 2,4,6
Аргумент принято называть именно args, хотя это и не обязательно. Далее в цикле просто перебираем каждый элемент и умножаем его на 2.
Помимо списков, мы можем передавать словари. Для этого надо просто прописать две звездочки, а все остальное остается таким же.
Возвращаемое значение функции (return)
Мы уже сталкивались со словом return, которое возвращает какое-то значение. Но есть функции, которые ничего не возвращают. Они могут производить какие-то другие действия, например, записывать текст в файл, считывать какие-то значения и многое другое.
Анонимная функция: лямбда
Lambda функции — это, как правила, короткие функции, для которых нет смысла добавлять настоящую. Они записываются в одну строку и синтаксис выглядит следующим образом:
>>lam = lambda a, b: a + b
>>>lam(1, 2)
3
>>> (lambda a, b: a + b)(1, 2)
3
Пустая функция (stub)
В питоне можно создавать пустые функции, которые вообще ничего не делают, а используются обычно тогда, когда программист пока не хочет заполнять ее кодом, но не хочет забыть это сделать впоследствии, поэтому и создает.
deftest():
pass
Для таких целей используется «заглушка» pass.
Рекурсивные функции
Это такая техника, которая широко используется не только в программировании, но в ComputerScience в целом. Что же это такое? Рекурсия — это когда функция вызывает саму себя. Проще всего это показать на примере по нахождению числа Фибоначи.
deffunc(x):
if x == 0:
return 1
returnfunc(x-1) * x
Вот как это выглядит. Но использовать такой метод стоит только в редких случаях, потому, что во-первых он не является оптимальным, а во вторых рекурсия ограничена. Если бесконечно пытаться ее вызывать, то произойдет аварийный выход из программы.
Области видимости
Один из основных моментов любого языка является область видимости. Конкретно в питоне есть 2 области: локальная и глобальная. Глобальная — это те, которое создаются внутри модуля и доступны везде, а локальные это те, которые создаются в теле функции и доступны только для нее. Вне функции нельзя вызвать локальную переменную.
Тест на знание python
Ну, а в заключение рекомендую пройти тестик и ответить на вопросы, чтобы еще лучше закрепить тему.
- Что такое функция и как она создается?
- deff(a, b x = 2): return a + b print(f(2,5)). Какой результат будет? a) 6 b) 7 c) Ошибка d) 9
- Какое ключевое слово нужно прописать, чтобы поставить заглушку для функции?
- deffunc(f): if f == 0: return 1 returnfunc(f+1) * f print(f(2)). Что будет в таком случае? a) 3 b) Ошибка c) 6 d) 4
- Что такое области видимости и для чего они нужны?
- Как выглядит синтаксис лямбда?
- Выбрать лишнее. a) print() b) multiply() c) int() d) type()
Сегодня была очень объемная тема, которую обязательно нужно знать. Поэтому прямо сейчас, после ее прочтения, пойдите и по практикуйтесь. Создайте простую функцию и попробуйте с ней поработать. Практика — это наше все! Удачи!