Функции и их аргументы в Phyton

Сегодня будет рассмотрена одна из самых важных частей не только языка программирование пайтон, но и в принципе программирование. Конечно, речь идет о функциях; о том, как они создаются, для чего нужны, как использовать и не только. Тема действительно очень важна, поэтому изучить ее надо основательно.

def (функция/метод)

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

Функции и их аргументы

Аргументы — это те значения, которые передаются в функцию. Они могут могут быть как обязательными, так и не обязательными. Небольшое примечание: необязательные аргументы должны быть самыми последними. Давайте все еще будет рассмотрено на примерах.

Рецепт создания функции в python

Рецепт создания функции в питоне довольно прост:

  1. Для начала нужно прописать ключевое слово def.
  2. Далее вписать названия функции, в скобках аргументы, которые она будет принимать и поставить двоеточие.
  3. Весь код, который будет следовать далее называется телом функции.

Создание функций

Пример создания и использование функции:

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

Ну, а в заключение рекомендую пройти тестик и ответить на вопросы, чтобы еще лучше закрепить тему.

  1. Что такое функция и как она создается?
  2. deff(a, b x = 2): return a + b print(f(2,5)). Какой результат будет? a) 6 b) 7 c) Ошибка d) 9
  3. Какое ключевое слово нужно прописать, чтобы поставить заглушку для функции?
  4. deffunc(f): if f == 0: return 1 returnfunc(f+1) * f print(f(2)). Что будет в таком случае? a) 3 b) Ошибка c) 6 d) 4
  5. Что такое области видимости и для чего они нужны?
  6. Как выглядит синтаксис лямбда?
  7. Выбрать лишнее. a) print() b) multiply() c) int() d) type()

Сегодня была очень объемная тема, которую обязательно нужно знать. Поэтому прямо сейчас, после ее прочтения, пойдите и по практикуйтесь. Создайте простую функцию и попробуйте с ней поработать. Практика — это наше все! Удачи!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *