Комбинация функций

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

При этом функция может принимать входные данные — аргументы. Благодаря этому работает комбинация двух функций print и capwords. Первая print выводит текст на экран. Вторая capwords делает буквы заглавными:

from string import capwords

print(capwords('петр иванович'))  # выведет Петр Иванович

Сначала функция capwords принимает на вход строку 'петр иванович' и на её основе создает новую строку с заглавными буквами 'Петр Иванович'. Эта новая строка сразу попадает на вход следующей функции print, а та выводит на экран все что получает на вход. Мы передали в print строку с заглавными буквами 'Петр Иванович', её и увидели на экране.

Получилась цепочка вызовов:

строка 'петр иванович' ——> capwords() —— новая строка 'Петр Иванович' ——> print()

Обратите внимание, что функции в коде записываются слева направо: сначала print, затем capwords —, а вот исполняются уже справа налево: сначала capwords, затем print.

Сначала исполняются внутренние функции, затем внешние

Эту цепочку вызовов capwords и print можно наращивать и дальше, добавляя новые функции. Рассмотрим пример с функцией abs(), она принимает на вход число и делает его положительным, отбрасывая знак минус -. Вычислим модуль числа:

abs(-10)  # вернет 10

print(abs(-10))  # выведет 10

print(abs(abs(-10)))  # выведет 10

print(abs(abs(abs(abs(-10)))))  # выведет 10

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

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

Примеры комбинации функций

Вывести число на экран:

число 12 —> print()
print(12)  # выведет 12

Умножить число на два, а затем вывести на экран:

число 12 —> умножить на 2 —> новое число 24 —> print()
print(12 * 2)  # выведет 24

Посчитать количество символов в строке и вывести число на экран:

строка 'Привет!' —> len() —> число 7 —> print()
print(len('Привет!'))  # выведет 7

Посчитать количество символов в строке и вывести число словами. Мы здесь используем функцию num2words, которая записывает числа словами (1 —> 'one'):

строка 'Привет!' —> len() —> число 7 —> num2words() с lang='ru' —> строка 'семь' —> print()
print(num2words(len('Привет!'), lang='ru'))  # выведет 'семь'

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.