Função dentro de função em Python

Em Python, é possível declarar outras funções dentro de uma função. Suponha que temos uma função externa outer, dentro da qual existe uma função inner:

pythondef outer():
  def inner():
    pass

O exemplo acima parece bastante simples. No entanto, muitas vezes há situações em que, no corpo da função outer, além da inner, outras operações também são executadas. Para simplificar o código, seria possível mover a inner para fora do bloco, mas essa função será usada apenas uma vez e apenas dentro da função outer. Portanto, não faz sentido movê-la para fora.

Vamos considerar um exemplo em que uma lista é passada para a função outer. E com a ajuda da função inner, o elemento numérico da lista será elevado ao quadrado. Para isso, após a função inner, declaramos uma lista vazia res, na qual os elementos elevados ao quadrado serão acumulados em um loop:

pythondef outer(lst):
  def inner(num):
    return num ** 2

  res = []

  for el in lst:
    res.append(inner(el))

  return res

Vamos chamar a função outer, passar uma lista como parâmetro e exibir o resultado no console:

pythonprint(outer([2, 3, 5])) # exibirá [4, 9, 25]
Задание 1

Escreva uma função externa e uma função interna, cujo trabalho conjunto exibirá cada elemento de string da lista com a primeira letra maiúscula.

Задание 2

Dadas as funções:

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

  return res

Reescreva o código de modo que func1 seja uma função interna de func2.