In Python, una funzione è un blocco di codice che può essere eseguito ogni volta che viene richiamato. Per comunicare un risultato al termine dell’esecuzione, si utilizza la parola chiave return
.
Esempio di funzione con un valore di ritorno
Questo esempio mostra una funzione che calcola la somma di due numeri e restituisce il risultato tramite return
.
def somma(a, b):
{
return a + b
}
Quando si richiama la funzione come somma(3, 5)
, essa restituirà 8.
Funzioni senza valore di ritorno
Non tutte le funzioni hanno bisogno di restituire un valore. Alcune si limitano ad eseguire un’azione, come stampare un messaggio.
def saluta(nome):
{
print("Ciao, " + nome + "!")
}
In questo caso, la funzione non usa return
: non produce un risultato, ma esegue un effetto.
Come restituire più valori in una funzione Python
Esempio di funzione con più valori di ritorno
Python permette di restituire più di un valore contemporaneamente, separandoli con una virgola.
def operazioni(a, b):
{
somma = a + b
differenza = a - b
return somma, differenza
}
Richiamando operazioni(10, 4)
, si otterranno due valori: 14 e 6.
Destrutturare i valori di ritorno
È possibile assegnare i valori restituiti direttamente a più variabili:
risultato1, risultato2 = operazioni(10, 4)
Così risultato1
conterrà 14 e risultato2
conterrà 6.
Il valore di ritorno implicito: None
None come valore di ritorno
Quando una funzione non include esplicitamente return
, Python restituisce automaticamente None
.
def fai_nulla():
{
pass
}
Chiamando fai_nulla()
, il risultato sarà None.
Differenza tra None e altri valori
None rappresenta l’assenza di valore. È diverso da 0
, ""
(stringa vuota) o []
(lista vuota), che sono comunque valori validi.
Gestire valori di ritorno complessi in Python
Restituire una lista
È possibile restituire una lista per racchiudere più elementi in un singolo oggetto:
def crea_lista():
{
return [1, 2, 3, 4]
}
Restituire un dizionario
Un dizionario consente di etichettare i dati, rendendo il risultato più esplicito.
def dati_persona():
{
return {
"nome": "Mario",
"età": 30
}
}
Restituire una funzione
Python consente di restituire anche un’altra funzione, aprendo la strada a tecniche più avanzate come le funzioni di ordine superiore.
def generatore_moltiplicatore(x):
{
def moltiplica(y):
{
return x * y
}
return moltiplica
}
Scrivere funzioni con return condizionato
È comune usare condizioni per decidere cosa restituire. Questo rende la funzione più flessibile.
def classificazione(voto):
{
if voto >= 18:
{
return "Promosso"
}
else:
{
return "Bocciato"
}
}
In base al valore del parametro voto
, la funzione restituirà un messaggio diverso.
Valori di ritorno multipli con oggetti complessi
Oltre a tuple e liste, è possibile restituire oggetti personalizzati o strutture dati complesse, come classi o oggetti JSON.
def crea_studente():
{
return {
"nome": "Luca",
"materie": ["Matematica", "Informatica"],
"media": 27.5
}
}
Questa tecnica è molto utile per progetti reali in cui è necessario restituire una struttura ben organizzata di dati.