Funzioni in Python

Le funzioni servono per raggruppare istruzioni che svolgono un compito preciso.

Sono utilissime perché:

  • evitano ripetizioni;
  • rendono il codice più ordinato;
  • permettono di riutilizzare una soluzione più volte.

Definire una funzione

In Python si usa def:

def saluta():
    print("Ciao!")

La funzione viene definita, ma non eseguita subito.

Per eseguirla bisogna chiamarla:

saluta()

Parametri

Le funzioni possono ricevere dati in ingresso.

def saluta(nome):
    print(f"Ciao {nome}!")
saluta("Luca")
saluta("Anna")

Più parametri

def somma(a, b):
    print(a + b)
somma(3, 5)

return

Molto spesso una funzione non deve solo stampare, ma restituire un valore.

def somma(a, b):
    return a + b

risultato = somma(3, 5)
print(risultato)

Differenza tra print e return

def esempio1():
    print(10)

def esempio2():
    return 10
  • print() mostra un valore a schermo;
  • return restituisce un valore al punto in cui la funzione è stata chiamata.

Parametri e argomenti

  • i parametri sono i nomi nella definizione della funzione;
  • gli argomenti sono i valori passati quando la chiamiamo.
def saluta(nome):   # nome = parametro
    print(nome)

saluta("Marta")     # "Marta" = argomento

Esempio completo

def area_rettangolo(base, altezza):
    return base * altezza

area = area_rettangolo(5, 3)
print(f"L'area vale {area}")

Perché le funzioni sono importanti

Una funzione ci permette di trasformare questo:

print(5 * 3)
print(7 * 2)
print(10 * 4)

in qualcosa di più generale:

def area_rettangolo(base, altezza):
    return base * altezza

print(area_rettangolo(5, 3))
print(area_rettangolo(7, 2))
print(area_rettangolo(10, 4))

Questa è programmazione vera: prendere uno schema e renderlo riutilizzabile.

Ricapitoliamo

  • una funzione è un blocco di codice riutilizzabile;
  • si definisce con def;
  • può ricevere parametri;
  • può restituire un valore con return;
  • aiuta a scrivere codice più ordinato, generale e leggibile.