Creato da pastuweb.com
Share My Page
My Social Accounts
Account FaceBook Account LinkedIn Account Twitter Account Google Plus Account Git Hub

L'istruzione che ci permette di creare una funzione è def.

 
Esempio:
def fattoriale(n):
    """
    stringa di documentazione della funzione
    """
    if n< 2:
        return 1
    return n * fattoriale(n-1)
 
L'istruzione return viene utilizzata per terminare la funzione restituendo il valore desiderato.
La funzione scritta sopra è del tipo ricorsiva.
 
Valori restituiti
In Python non esiste il concetto di PROCEDURA (elenco di istruzioni che non restituisce nulla).
Quando una funzione termina senza che venga incontrata l'istruzione return, viene comunque restituito il valore None. Lo stesso accade nel caso in cui venga eseguito un return non seguito da un valore.
 
Python semplifica il caso in cui bisogna far ritornare PIU' VALORI.
 
Esempio:
def funzione_valori_multipli():
    return "uno", "due"
 
>>> a,b = funzione_valori_multipli()
>>> a
"uno"
>>> b
"due"
 
L'assegnamento in linea di più variabili è davvero una caratteristica utilissima di Pyhton.
 
Passaggio di argomenti
Per una funzione possiamo ovviamente definire tutti i parametri che vogliamo.
 
I parametri possono anche essere indicati per nome invece che per posizione.
 
Esempio:
def minimo(n1, n2, n3)
    pass
 
>>> minimo (23,9,80) #per posizione
>>> minimo (n2=9, n1=23, n3=80) #per nome
 
Argomenti opzionali
Per ogni parametro è possibile definire un valore di default opzionale: in assenza del rispettivo parametro, la funzione impiegherà il valore di default.
 
Elenco di parametri NON NOTO A PRIORI
 
Prima tipologia:
* ---->trasforma una lista di parametri (senza nome e di lunghezza arbitraria) in una tupla.
 
Esempio:
def spesa(*cosa):
    for x in cosa:
        print x
 
>>> spesa("uno", "due", "tre")
 
Seconda tipologia:
** ----> trasforma una lista di parametri (con nome e di lunghezza arbitraria) in un dizionario.
 
Esempio
def spesa(**cosa):
    for x,y in cosa.items()
        print x, y
 
>>> spesa(par1="uno", par2="due")
 
Prima tipologia insieme alla seconda tipologia:
Esempio:
def spesa(dove, *giorni, **cose):
    pass
 
>>> spesa("supermercato", "lun", "mar", latte=1, pane=3)
 
Attenzione:
quando le modalità vengono usate insieme, SI E? OBBLIGATI  a specificare prima * e poi **.
 
In Python una funzione è un oggetto a tutti gli effetti.
Se si prova ad assegnare una funzione a una variabile, possiamo usare la variabile semplicemente al posto della funzione.
 
Esempio:
def funzione_stampa(cosa):
    print cosa
 
>>> f = funzione_stampa
>>> f("ciao")
ciao
 
 
Possiamo anche passare una funzione come argomento ad un altra funzione:
 
Esempio:
def esegui(funz, stringa):
    funz(stringa)
 
>>> esegui(funzione_stampa, "ciao")
ciao
 
Esempio:
Creare un dizionario di funzioni. MOLTO UTILE
def butta(cosa):
    print "Buttare", cosa
 
def tieni(cosa):
    print "Tenere", cosa
 
>>> funzioni = dict()
>>> funzioni["ok"] = tieni
>>> funzioni["ko"] = butta
>>> funzioni["ok"]("news")
Tenere news
>>> funzioni["ko"]("spam")
Buttare spam
Average (1 Vote)
The average rating is 5.0 stars out of 5.