Funktion i funktion i Python

I Python kan man deklarera andra funktioner inuti en funktion. Låt oss säga att vi har en yttre funktion outer, inuti vilken det finns en funktion inner:

pythondef outer():
  def inner():
    pass

Exemplet ovan ser ganska enkelt ut. Men det finns ofta situationer när det i funktionskroppen outer förutom inner också utförs andra operationer. För att förenkla koden kunde man ha flyttat ut inner till ett yttre kodblock, men denna funktion kommer bara att användas en gång och bara inuti funktionen outer. Därför finns det ingen mening med att flytta ut den.

Låt oss titta på ett exempel där en lista skickas till funktionen outer. Och med hjälp av funktionen inner kommer det numeriska elementet i listan att höjas till kvadrat. För att göra detta deklarerar vi en tom lista res efter funktionen inner, i vilken element som har höjts till kvadrat kommer ackumuleras i en loop:

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

  res = []

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

  return res

Låt oss anropa funktionen outer, skicka en listparameter till den och skriva ut resultatet till konsolen:

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

Skriv en yttre och en inre funktion som tillsammans skriver ut varje strängelement i listan med stor begynnelsebokstav.

Задание 2

Givna funktioner:

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

  return res

Skriv om koden så att func1 blir en inre funktion till func2.