CodeGym /Corsi /Python SELF IT /Restituire un valore

Restituire un valore

Python SELF IT
Livello 6 , Lezione 2
Disponibile

8.1 Operatore return

In Python, l'operatore return gioca un ruolo centrale nelle funzioni, perché è tramite esso che una funzione può restituire un valore. Capire come usarlo è fondamentale per lo sviluppo software efficace.

L'operatore return termina l'esecuzione della funzione e "restituisce" il risultato al codice chiamante. Se una funzione deve produrre un risultato che sarà utilizzato successivamente, si usa return.

Restituire un valore

Le funzioni possono restituire qualsiasi tipo di dato, inclusi numeri, stringhe, oggetti, persino altre funzioni e None. Esempio:


def sum(a, b):
    return a + b
        
result = sum(5, 3)
print(result)  # Stampa 8

Il risultato della somma a + b può essere assegnato alla variabile result.

Restituire valori multipli

Python permette di restituire più valori da una funzione utilizzando le tuple:


def get_user():
    name = "Ivan"
    age = 25
    return name, age
        
user_name, user_age = get_user()
print(user_name, user_age)  # Stampa Ivan 25

Usare return per terminare una funzione

L'operatore return può anche essere usato per concludere immediatamente una funzione, inclusi cicli o blocchi condizionali all'interno della funzione:


def check_password(pswd):
    if len(pswd) < 8:
        return "Password troppo corta"
    return "Password accettata"

return senza valore

Se return è usato senza un valore o è completamente omesso, la funzione restituisce None:


def print_message(text):
    print(text)
    return
        
result = print_message("Ciao")
print(result)  # Stampa None

L'operatore return è uno strumento potente in Python, che offre flessibilità nella gestione del flusso di esecuzione del programma. Permette alle funzioni non solo di restituire valori per un uso successivo, ma anche di controllare la logica di esecuzione, rendendo il codice più pulito e facile da capire.

8.2 Operatore pass

In Python esiste un operatore speciale — pass, che non fa niente. L'operatore pass viene utilizzato come segnaposto in blocchi di codice dove sintatticamente è richiesto del contenuto, ma funzionalmente non è ancora definito (ci dovrebbe essere del codice, ma non si sa ancora quale).

È particolarmente utile nei casi in cui stai lavorando su un grande progetto e vuoi strutturare il programma senza far eseguire operazioni specifiche. Ecco alcuni esempi di utilizzo di pass.

Nei definizioni di funzione:


def my_function():
    pass

Qui pass è usato per definire una funzione che al momento non ha implementazione.

In cicli e condizioni:


for item in my_list:
    pass

Se è necessario creare un ciclo, ma non serve svolgere alcuna operazione nel suo corpo.

Nei classi:

Definire una classe senza metodi e attributi, in modo da riservare il nome e la struttura della classe per un uso futuro.

L'operatore pass è spesso usato durante lo sviluppo e il testing, quando la struttura del programma è già chiara, ma i dettagli dell'implementazione dei singoli componenti non sono ancora definiti. Questo permette al programmatore di organizzare il codice e aggiungere funzionalità gradualmente senza interrompere il funzionamento complessivo dell'applicazione.

8.3 Restituire una funzione

In Python, la possibilità di una funzione di restituire un'altra funzione è uno strumento potente, grazie al supporto dei closures* e delle funzioni di prima classe. Questa caratteristica del linguaggio permette di sviluppare programmi espressivi e flessibili, usando concetti come i decorator* e function factory*.

In Python, le funzioni sono oggetti, il che significa che possono essere assegnate a variabili, passate ad altre funzioni come argomenti o restituite come risultati. Questa capacità rende le funzioni strumenti estremamente potenti per creare codice modulare e facilmente testabile.

Facciamo un esempio: creiamo una funzione che genera funzioni per elevare a potenza. Una funzione alzerà al quadrato, un'altra al cubo, e così via. Ecco come potrebbe apparire questo codice:


def power(exponent):
    def inner(base):
        return base ** exponent
    return inner
        
square = power(2)
print(square(3))  # Stampa 9
        
cube = power(3)
print(cube(3))  # Stampa 27

Nota che la funzione power non chiama la funzione inner. Invece, all'interno della funzione power è dichiarata la funzione inner con il parametro base. Ma la funzione inner non è solo dichiarata: usa il parametro exponent al suo interno.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION