Найти в Дзене
Python - простым языком

1.11. Функции. Параметры и аргументы. Вызов функций.

На сегодняшнем уроке мы прикоснёмся к одному из основных элементов программирования - функциям. Разберём что такое параметры и аргументы, какие из них являются обязательными, а какие нет. Писать собственные функции мы будем чуть-чуть позже. Наша главная задача разобраться с основополагающими моментами при работе с функциями. Для примера мы разберём две "дефолтные" функции "пайтона" - pow() и round(). Прежде чем я начну рассказывать об указанных функциях, хотелось бы остановиться на одном важном моменте - сигнатуре функции. Сигнатура функции - это своего рода "настройки" функции, которые определяют вводные данные - входные аргументы и их типы, а также выходное значение и его тип. Если мы говорим о встроенных в "пайтон" функциях то их сигнатуру Вы сможете найти в официальной документации. Ну а сигнатуру своих "самописных" функций Вы будете определять сами, когда непосредственно начнёте из писать. Функция pow() Указанная функция позволяет возвести число в степень. Согласно официальной д

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

Писать собственные функции мы будем чуть-чуть позже. Наша главная задача разобраться с основополагающими моментами при работе с функциями. Для примера мы разберём две "дефолтные" функции "пайтона" - pow() и round().

Прежде чем я начну рассказывать об указанных функциях, хотелось бы остановиться на одном важном моменте - сигнатуре функции.

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

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

Функция pow()

Указанная функция позволяет возвести число в степень. Согласно официальной документации сигнатура функции выглядит следующим образом:

pow(x, y[, z])

Возвращает x в степени y; если z присутствует, возвращает x в степени y, по модулю z

Говоря простым языком функция pow() принимает два аргумента: x - число, которое мы будем возводить в степень и y - число соответствующее степени, в которую мы будем возводить.

В данном случае указанные числа являются параметрами и обязательны для передачи в функцию. Если не передать в функцию обязательные параметры, то "пайтон" выдаст ошибку "TypeError: pow expected at least 2 arguments, got 0".

Параметры - это переменные, которые объявлены в функции и используются внутри неё при обработке функции интерпретатором. Параметры функции определяются при объявлении функции (указываются в скобках после имени функции).

При объявлении функции pow() были использованы два обязательных параметра - два числа. При этом стоит обратить внимание, что сигнатура функции требует именно два числа, и передать в функцию например строки не получится. Точнее получится, но Вы получите сообщение об ошибке: "TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'str'". Также, у вас не получится передать в функцию один или четыре аргумента. Данная функция всегда ожидает именно два аргумента.

Аргумент - данные, передаваемые в функцию.

Таким образом, если при объявлении функции были использованы два параметра с типами int, то и передать в функцию вы можете только данные с типом int.

Функция round()

Указанная функция позволяет округлить число, которое ей передается в качестве аргумента.

-2

В данном примере я передал в функцию два аргумента: число, которое нужно округлить и точность округления.

Если посмотреть сигнатуру функции round(), то мы увидим что второй параметр является необязательным (внутри функции его значение по умолчанию None).

Если в данную функцию не передавать в торой аргумент, то мы получим целое число (результат будет целым значение (int).

-3

С помощью второго аргументы мы можем установить точность округления, например:

-4

Ну или вот так:

-5

В данном примере второй аргумент отвечает за количество цифр после запятой, которые оставляет функция при округлении.

В отличии от ряда других языков программирования, в "пайтоне" необязательные параметры всегда стоят после обязательных. Это важно и стоит это запомнить.

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

Вызов функций.

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

Выражение в программировании всегда возвращает результат, который в дальнейшем можно использовать. Ранее, мы уже разбирались, что такое выражение, и принципах, на которых оно строится. Помните? сложение и вычитание, строковые операции, такие как конкатенация. Всё это и есть выражения.

Вот, например, мы используем результат выражения присваивая его переменной:

-6

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

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

-7

Здесь мы объявили переменную text и присвоили ей тип - строка, и присвоили значение: "Автомобиль", а после, мы получили количество символов в строке text, оняли 5 и вывели результат.

Дальше Вы поймёте, что выражения можно комбинировать. По мере повышения Ваших знаний о "пайтон", Вы лучше будете понимать работу с выражениями. Главное постоянно практиковаться и со временем, Вы научитесь соединять части кода и получать более результат более сложных расчётов.

Главное, что мне хотелось бы донести до Вас, НЕВАЖНО, какой сложности Вы пишите функции, или используете уже имеющиеся в "пайтоне", ВСЕ они работают одинаково и придерживаются одним и тем же условиям и требованиям. Все функции имеют параметры, все функции имеют аргументы. Практически все функции можно использовать в выражениях (о тех, что нельзя, мы поговорим чуть позже).

Если Вам нравятся мои уроки, то "лайк" и подписка на мой канал, будут самой большой наградой!