Imparare a Programmare in Python – 5 – Le Funzioni

Imparare a Programmare in Python – 5 – Le Funzioni

Imparare a Programmare in Python – 5 – Le Funzioni: Utilizzo delle funzioni in Python, i parametri, le variabili locali ed il Return.

Imparare a Programmare in Python – 5 – Le Funzioni

Le funzioni sono alla base di qualsiasi linguaggio di programmazione ad oggetti perchè permettono di scomporre il codice e di evitare ripetizioni, andando a richiamare la funzione ogni volta che ne abbiamo bisogno.

I vantaggi delle funzioni sono:

  • Riusabilità (una funzione può essere scritta solo una volta e richiamata ogni volta che ne abbiamo la necessità)
  • Organizzazione del codice (Le funzioni permettono di tenere il codice più pulito, rendendo anche più facile ogni successiva modifica)
  • Evitare ripetizioni (Quando dobbiamo eseguire una determinata operazione diverse volte all’interno del nostro codice, trasformarla in una funzione può permetterci di ridurre le righe di codice scritte e di evitare di riscrivere lo stesso codice, 10, 20 o 100 volte)

Come definire una funzione

Una funzione si può definire (o dichiarare) utilizzando il comando def seguito dal nome della funzione, le parentesi tonde ed i due punti.

#Le funzioni
def nuova_funzione():
   print("Questo messaggio è all'interno di una funzione")
print("Questo messaggio è all'esterno di una funzione")

Quella dell’esempio è una funzione base, che una volta richiamata mostrerà sempre il messaggio: Questo messaggio è all’interno di una funzione.

#Le funzioni
def nuova_funzione():
   print("Questo messaggio è all'interno di una funzione")
#Fine funzione
nuova_funzione()
print("Questo messaggio è all'esterno di una funzione")

In questo secondo esempio oltre ad aver dichiarato, andiamo anche a richiamare la funzione.

Per farlo ci basta semplicemente scrivere il suo nome, infatti finché non viene richiamata, il codice al suo interno non verrà eseguito.

Parametri, Variabili locali e Return

Le funzioni, permettono di eseguire dei comandi ogni volta che ne abbiamo bisogno, di base possiamo richiamare una funzione farle eseguire dei comandi presenti al suo interno e passare al codice successivo.

Ma è possibile creare delle funzioni che interagiscono con il codice esterno, prendendo dei valori o passandoli all’esterno.

I Parametri

I parametri permettono ad una funzione di prendere dei valori dall’esterno, si inseriscono tra le parentesi tonde.

#Le funzioni
testo_messaggio = "Questo messaggio è all'interno di una funzione"
def nuova_funzione(messaggio):
   print(messaggio)
#Fine funzione
nuova_funzione(messaggio)
print("Questo messaggio è all'esterno di una funzione")

In questo esempio, abbiamo una variabile esterna con una stringa, la inviamo come parametro alla funzione, che sarà quindi in grado di leggerne ed elaborare il contenuto.

Possiamo passare diversi parametri alla nostra funzione, alcuni anche preimpostati:

#Le funzioni
nome = input("Inserisci il tuo nome:")
cognome = input("Inserisci il tuo cognome:")
eta= input("Inserisci la tua età:")
def nuova_funzione(nome, cognome, eta):
   print(f"Ciao {nome} {cognome}, hai {eta} anni.")
#Fine funzione
nuova_funzione(nome, cognome, eta)
print("Questo messaggio è all'esterno di una funzione")
#Le funzioni
nome = input("Inserisci il tuo nome:")
cognome = input("Inserisci il tuo cognome:")
def nuova_funzione(nome, cognome, eta=20):
   print(f"Ciao {nome} {cognome}, hai {eta} anni.")
#Fine funzione
nuova_funzione(nome, cognome)
print("Questo messaggio è all'esterno di una funzione")

Nel secondo esempio non passiamo l’età come parametro, ma lo inseriamo preimpostato (eta=16), in questo modo l’età sarà 16 per tutti, però quel parametro è esistente, quindi se volessimo passarlo potremmo comunque farlo.

Semplicemente diventa facoltativo, se non lo inseriamo il valore sarà 16, se lo inseriamo sarà quello inserito da noi.

Variabili locali

Lo Scope (o ambito delle variabili) definisce in quali parti del codice possiamo utilizzarle.

Le variabili create all’interno di una funzione vengono definite locali, questo significa che sono valide ed utilizzabili solo all’interno di una funzione, al suo esterno non esistono.

Esempio:

#Le funzioni
def nuova_funzione():
   messaggio = "Questo messaggio è all'interno di una funzione"
   print(messaggio)
#Fine funzione
nuova_funzione()
print(messaggio) #ERRORE

In questo esempio, abbiamo creato una variabile chiamata messaggio all’interno di una funzione, quindi il print presente nella funzione può accedere a quella variabile e mostrare il suo contenuto.

Il print presente all’esterno invece non potrà accedere alla variabile (perché non esiste al di fuori della funzione) e quindi avremo un errore.

Return

Il comando Return è l’esatto opposto dei parametri, se i parametri servono ad inviare informazioni alla funzione, return serve per inviare informazioni dalla funzione all’esterno.

Riprendiamo quindi l’esempio precedente:

#Le funzioni
def nuova_funzione():
   messaggio = "Questo messaggio è all'interno di una funzione"
   return messaggio
#Fine funzione
messaggio = nuova_funzione()
print(messaggio)

In questo esempio, creiamo una variabile all’interno della funzione e tramite return inviamo il suo contenuto all’esterno, salvandolo in un’altra variabile che può essere quindi letta correttamente.

Il return permette anche di salvare valori multipli, ad esempio:

#Le funzioni
def nuova_funzione():
   nome = input("Inserisci il tuo nome:")
   cognome = input("Inserisci il tuo cognome:")
   return nome, cognome
#Fine funzione
nome, cognome = nuova_funzione()
print(f"Ciao {nome} {cognome"})

In questo esempio abbiamo creato 2 variabili all’interno della funzione ed abbiamo poi inviato il loro contenuto a 2 variabili esterne.

Questi sono esempi semplici, ma si possono eseguire operazioni all’interno di una funzione e poi riportarne il risultato all’esterno.

Esempio del video:

# LE FUNZIONI
def chiedi_nome(nome, cognome):
    print(f"Ciao {nome} {cognome}, questo è ancora il tuo nome? [S] Si, [N] No")
    if input() == "S":
        return nome, cognome
    else:
        nome = input("Inserisci il tuo nuovo nome: ")
        cognome = input("Inserisci il tuo nuovo cognome: ")
        return nome, cognome
def chiedi_nome_cognome_eta(nome, cognome, eta):
    print(f"Ciao {nome} {cognome}, questo è ancora il tuo nome? [S] Si, [N] No")
    if input() == "S":
        return nome, cognome, eta
    else:
        nome = input("Inserisci il tuo nuovo nome: ")
        cognome = input("Inserisci il tuo nuovo cognome: ")
        return nome, cognome, eta

nome = input("Inserisci il tuo nome: ")
cognome = input("Inserisci il tuo cognome: ")
eta = input("Inserisci ls tua eta: ")
nome, cognome, eta = chiedi_nome(nome, cognome, eta)
print(f"Ciao {nome} {cognome}, hai {eta} anni" )
input("Premi qualsiasi tasto per chiudere...")

In questo esempio, chiederemo prima all’utente, nome, cognome ed età, quindi con la funzione controlleremo se sono corretti, se lo sono lo saluteremo, altrimenti gli chiederemo di correggere i dati e mostreremo le sue modifiche.

Video

Scopri di più da ClaudioMasci

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continua a leggere