Комбинация функций
Функция — это маленькая программа. Она выполняет свою работу и возвращает результат: число, строку или другой формат данных, все зависит от функции.
При этом функция может принимать входные данные — аргументы. Благодаря этому работает комбинация двух функций 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
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.