Funkcia v funkcii v Python

V Python je možné deklarovať inside jedných funkcií ďalšie. Nech máme vonkajšiu funkciu outer, inside ktorej sa nachádza funkcia inner:

pythondef outer():
  def inner():
    pass

Uvedený príklad vyzerá dosť jednoducho. Avšak často nastávajú situácie, kedy v tele funkcie outer okrem inner vykonávajú sa aj ďalšie operácie. Pre zjednodušenie kódu by sa dalo vyniesť inner do vonkajšieho bloku kódu, avšak táto funkcia bude použitá len raz a len inside funkcie outer. Preto jej vynášať mimo nemá zmysel.

Pozrime sa na príklad, kedy do funkcie outer je odovzdaný zoznam. A pomocou funkcie inner bude číselný element zoznamu umocnený na druhú stupeň. Na to po funkcii inner deklarujeme prázdny zoznam res, v ktorom sa budú akumulovať elementy, umocnené na druhú v cykle:

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

  res = []

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

  return res

Zavolajme funkciu outer, odovzdajme jej parameter zoznam a vypíšme výsledok do konzoly:

pythonprint(outer([2, 3, 5])) # vypíše [4, 9, 25]
Задание 1

Napíšte vonkajšiu a vnútornú funkciu, spoločná práca ktorých bude vypisovať každý reťazcový element zoznamu s veľkým počiatočným písmenom.

Задание 2

Dané funkcie:

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

  return res

Prepíšte kód tak, aby func1 bola vnútornou funkciou pre func2.