Python dichiarazione e chiamata di funzioni

Autore:[Antonio Gallonetto]

Cosa sono le funzioni

Le funzioni in qualsiasi linguaggio di programmazione, sono delle scatole che dato uno o più valori in ingresso restituiscono un risultato applicando un certo algoritmo o una serie di operazioni sui dati.

Le funzioni non cambiano i dati

Normalmente le funzioni non modificano i dati, quindi si utilizzano solo variabili locali, questo come buona tecnica di programmazione, altrimenti potremmo avere dei risultati imprevisti di qualsiasi tipo.

Sintassi di dichiarazione di una funzione

def nomeFunzione(argomenti):
    ## blocco codice indentato
    return valore_ritorno_funzione

Docustring

Dopo la definizione della funzione è possibile avere un commento che può essere estratto automaticamente dall’help, dichiarato con le triple virgolette, in questo modo: “““Commento Docustring”"”. Questo per poter documentare efficacemente le funzioni, classi e metodi in python.

Dichiarazione di una funzione senza argomenti

La sintassi per una una funzione senza argomenti è la seguente:

def nomeFunzione():
    codice da eseguire
    return valore_ritorno_funzione

Ritorno di valori della funzione

In Python una funzione può ritornare uno o più valori. Nel caso di ritorno di valori multipli questi sono separati da una virgola. Ovviamente il valori di ritorno della funzione sono preceduti dalla parola chiave return.

Chiamata di una funzione

Possiamo avere due tipi di chiamata in Python, la prima si considera la posizione degli argomenti, l’altra invece si passa il nome dell’argomento e il relativo valore.
La sintassi è la seguente: nomefunzione(valoreArgomento1, valoreArgomento2, valoreArgomentoN)
oppure
nomefunzione(nomeArgomento1=valoreArgomento1, nomeArgomento2=valoreArgomento2, nomeArgomenton=valoreArgomentoN)

Passaggio di tuple e dizionari ad una funzione

Si possono passare ad una funzione sia una tupla che un dizionario.
Requisito nel caso della tupla che il numero di argomenti corrisponda alla tupla.
Requisito nel caso del dizionario che il numero e il nome degli argomenti corrispondano ai parametri da passare. Si indica che si sta passando una tupla con un asterisco * e un dizionario con il doppio asterisco **.

Esempio di argomento tupla e dizionario

def test_car(arg1,arg2):
    return arg1+" "+arg2


print(test_car("prova","testo"))

## Passaggio come argomento di una tupla
tuplaTesto=("prova","testo")
print(test_car(*tuplaTesto))

## Passaggio come argomento di un dizionario
dizTesto={"arg1":"prova","arg2":"testo"}
print(test_car(**dizTesto))

Variabili

Le variabili usate nella funzione sono locali alla funzione, quindi non influenzano variabili con lo stesso nome esterne alla funzione.

Esempio che le variabili sono locali alla funzione

testo="Questa è una prova"

def testVariabili(testoInput):
    testo=testoInput
    return testo

print(testVariabili("Oggi è una bella giornata"))
print(testo)
## ris del primo print Oggi è una bella giornata
## ris del secondo print Questa è una prova