Найти в Дзене
Журнал разработчика

Запись 16. Аргументы функции

Продолжаем изучать функции. В этой записи немного подробнее об аргументах.

Начну с того, что и так наверное понятно, но тем не менее. Функции можно ничего не передавать, можно передавать один аргумент, а можно передавать несколько аргументов перечисляя их через запятую.

Вернёмся к примеру с пробками из предыдущей записи и добавим второй аргумент – name. Заодно немного изменим функцию так, чтобы сначала добавлялось приветствие.

Теперь мы отправили функции 2 аргумента: число и строку. Функция также ждёт 2 аргумента. Сообщение о пробках сохраняется в переменной text и подставляется в результирующей строке там, где необходимо. В результате получим следующую строку:

-2

Порядок аргументов в вызове функции и в её объявлении должны совпадать. Но этому правилу можно не следовать если именовать аргументы. Рассмотрим пример.

-3

Результат:

-4

Отлично! Но что делать, если функция ждёт 2 аргумента, а мы передаём 1? На этот случай существует значение по-умолчанию. Оно сделает второй аргумент необязательным. Посмотрим как это работает.

При вызове функции указано значение по-умолчанию: name='Гость'
При вызове функции указано значение по-умолчанию: name='Гость'
-6

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

Ну и последний штрих. Добавим функции следующую логику: если имя не передано, то просто выведем сообщение о пробках.

-7

Пустая строка для name необходима, чтобы второй аргумент был необязательным. Ну а во втором условии проверяем наличие какой-либо информации в name: если там пустая строка, то результатом if name будет False и функция выведет только сообщение о пробке.

-8

Передали имя – получили приветствие, не передали – получили только сообщение о пробках.

А на этом всё. Надеюсь вам так же как и мне всё понятно, а если нет – пишите в комментариях свои вопросы, будем разбираться.