⊗pyPmFnFIF 20 of 129 menu

Funzione all'interno di una funzione in Python

In Python è possibile dichiarare alcune funzioni all'interno di altre. Supponiamo di avere una funzione esterna outer, all'interno della quale si trova la funzione inner:

def outer(): def inner(): pass

L'esempio sopra sembra abbastanza semplice. Tuttavia, spesso si verificano situazioni in cui nel corpo della funzione outer, oltre a inner, vengono eseguite altre operazioni. Per semplificare il codice si potrebbe spostare inner all'esterno del blocco, ma questa funzione verrà utilizzata solo una volta e solo all'interno della funzione outer. Quindi non ha senso spostarla fuori.

Consideriamo un esempio in cui alla funzione outer viene passata una lista. E con l'aiuto della funzione inner l'elemento numerico della lista viene elevato al quadrato. A tale scopo, dopo la funzione inner dichiariamo una lista vuota res, in cuiverranno accumulati gli elementi elevati al quadrato in un ciclo:

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

Chiamiamo la funzione outer, passiamole come parametro una lista e visualizziamo il risultato nella console:

print(outer([2, 3, 5])) # restituirà [4, 9, 25]

Scrivi una funzione esterna e una interna, il cui lavoro congiunto visualizzerà ogni elemento di tipo stringa della lista con la lettera iniziale maiuscola.

Date le funzioni:

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

Riscrivi il codice in modo che func1 sia una funzione interna di func2.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta