# Функция в функции в Python

В Python внутри одних функций можно объявлять другие. Пусть у нас есть внешняя функция `outer`, внутри которой находится функция `inner`:

`def outer(): def inner(): pass`

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

Давайте рассмотрим пример, когда в функцию `outer` передается список. А с помощью функции `inner` числовой элемент списка будет возводиться в квадратную степень. Для этого после функции `inner` объявляем пустой список `res`, в котором будут накапливаться элементы, возведенные в квадрат в цикле:

`def outer(lst): def inner(num): return num ** 2 res = [] for el in lst: res.append(inner(el)) return res`

Давайте вызовем функцию `outer`, передадим ей параметр список и выведем результат в консоль:

`print(outer([2, 3, 5])) # выведет [4, 9, 25]`

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

Даны функции:

`def func1(num): if num > 0: num += 2 return num def func2(iter): res = [] for el in iter: res.append(func1(el)) return res`

Перепишите код так, чтобы `func1` была внутренней функцией для `func2`.

← →
↑