Le funzioni

Una funzione è un insieme di diverse linee di codice.

Richiamando una funzione, possiamo richiamare queste linee di codice in una volta sola, senza ripetere il codice più volte.

Quindi, una funzione è uno strumento che si può usare più e più volte per produrre un output coerente, da diversi input.

Per creare una funzione, è basta avere un nome e un blocco di codice indentato.

Il tutto inizia con la parola chiave def e il nome della funzione, seguito da parentesi, e dai due punti. Il blocco di codice indentato, che segue i due punti, verrà eseguito quando la funzione sarà richiamata.

Le funzioni possono restituire un valore utilizzando la parola return seguita dal valore da restituire.

def nome_funzione():
    pass

Restituzione di valori multipli

Le funzioni in Python possono restituire più valori utilizzando un unico comando return.

Tutti i valori che dovrebbero essere restituiti sono elencati dopo il return  e sono separati da virgole.

def num_quadrato(a, b):
 a_quadrato = a * a
 b_quadrato = b * b  
 return a_quadrato, b_quadrato

due_quadrato, tre_quadrato = num_quadrato(2, 3)

Parametri e argomenti delle funzioni

A volte le funzioni richiedono un input di valori per fornire i dati per il codice indentato.

Questo input è definito usando dei parametri.

I parametri sono variabili definite nella definizione della funzione.
Ad essi sono assegnati i valori che sono passati come argomenti quando la funzione viene richiamata.

Per esempio, definiamo una funzione che scrive il tuo nome completo, i parametri saranno il tuo nome e cognome, che sono usati come input per scrivere il tuo nome completo.

Le funzioni in Python possono avere parametri multipli.

Per definire una funzione con parametri multipli, i nomi dei parametri sono posti uno dopo l'altro, separati da virgole, tra le parentesi della definizione della funzione.

def panino(pane, affettato):
  if (pane == True and affettato == True):
      print ("Ora si mangia!")

Chiamare una funzione

Python usa una sintassi semplice per chiamare (o usare o richiamare) una funzione creata.

Una funzione può essere chiamata scrivendo il suo nome, seguito da una coppia di parentesi tonde.

Per esempio, nome_completo().

nome_funzione()

Argomenti chiave in una funzione

Le funzioni possono essere definite con argomenti che possono avere valori predefiniti.

Quando gli argomenti delle funzioni vengono passati usando i loro nomi, essi prendono il nome di keyword arguments (argomenti chiave).

L'uso dei keyword arguments quando si chiama una funzione permette di passare gli argomenti in qualsiasi ordine, non solo nell'ordine in cui sono stati definiti nella funzione.

Se la funzione viene chiamata senza un valore per un argomento specifico, verrà utilizzato il valore predefinito.

def findvolume(lunghezza=1, larghezza=1, profondita=1):
   print ("lunghezza = " + str(lunghezza))
  print ("larghezza = " + str(larghezza))
  print ("profondita = " + str(profondita))   
  return lunghezza * larghezza * profondita

L'ambito delle variabili

In Python, una variabile definita all'interno di una funzione è chiamata variabile locale.

Non può essere usata al di fuori dell'ambito della funzione e tentare di farlo senza definire la variabile al di fuori della funzione causerà un errore.

In informatica l'ambito di azione di una variabile è chiamato scope.

a = 10
def funzione():
  a = 3
  print (a)

print (a)

funzione()
10
3

Variabili globali

Una variabile definita al di fuori di una funzione viene chiamata variabile globale.
Una particolarità è che si può accedere ad una variabile globale all'interno del corpo di una funzione.

a = "Ciao"
def stampa_a():
  print (a)
 
stampa_a()
"Ciao"