Le Funzioni in Python

Lezione#08 Benvenuti all’ottava lezione del corso Python in 11 passi: analizziamo le Funzioni.
Le Funzioni in Python permettono di raggruppare una sequenza di istruzioni che eseguono un compito specifico. Ad esempio, print() e str() sono funzioni proprie del linguaggio Python.
# script_801.py print(Hello, World!)
Hello, World!
In generale richiamiamo una funzione utilizzando il suo nome seguito da parentesi tonde in cui immettiamo un argomento. Ma come appena scritto esistono funzioni predefinite e proprie del Python, tuttavia possiamo crearne di nuove, definendole manualmente (custom functions).
# script_802.py def saluta(): print("Ciao a tutti!") saluta()
Ciao a tutti!
Abbiamo appena creato la funzione saluta() utilizzando l’istruzione def seguita dai due punti. Vediamo un nuovo esempio:
# script_803.py def saluta(nome): print("Ciao " + nome + "!") saluta("John")
Ciao John!
In quest’ultimo caso abbiamo passato il parametro nome alla funzione. I parametri sono variabili temporanee che ci consentono di dare un valore in pasto alle funzioni.
Creiamo una funzione che converte i Dollari in Euro.
# script_804.py def euro_conv(dollar): euro = dollar * 1.13 #tasso di cambio alla data di oggi return euro euro = euro_conv(89) print(str(euro) + "€")
100.57€
Ok! Abbiamo usato la keyword return che permette di rendere disponibile il valore calcolato dalla funzione. Vediamo ancora un esempio al riguardo:
# script_805.py def dollar_conv(euro): dollar = euro / 1.13 #tasso di cambio alla data di oggi return dollar dollar = dollar_conv(100.57) print(str(dollar) + "$")
89.0$
Ben fatto! Ora abbiamo i nostri convertitori di valute. Ma proviamo a complicare le cose, creiamo un convertitore multiplo di valute:
# script_806.py def mconv(numb): mylist = [] for n in numb: mylist.append(n*1.13) myRoundedList = [round(x,2) for x in mylist] return myRoundedList seq_d = [1,5,10,50,100] seq_e = mconv(seq_d) print(seq_e)
[1.13, 5.65, 11.3, 56.5, 113.0]
Benissimo! Abbiamo ottenuto il nostro multi-converter da Dollari a Euro. La funzione round() è utile per arrotondare un numero con tante cifre dopo la virgola quante se ne desiderano.
Come già visto nelle lezioni precedenti, possiamo avere liste e cicli annidati. Anche nel caso in questione, possiamo inserire funzioni all’interno di altre funzioni:
# script_807.py def euro_conv(dollar): euro = round(dollar * 1.13) # tasso di cambio alla data di oggi return euro def price(dollar): euro = euro_conv(dollar) print("Il costo è di " + str(dollar) + "$" + " oppure di " + str(euro) + "€") price(700)
Il costo è di 700$ oppure di circa 791€
# script_808.py def factorial(n): if n == 1: return 1 else: return (n * factorial(n-1)) x = factorial(5) print(x)
120
Ricapitolando: abbiamo visto come è possibile usare funzioni predefinite in Python, ma anche come crearne di nuove (custom functions). Per concludere la lezione consideriamo un esempio finale:
# script_809.py def chars(string): chars = [] for x in string: chars.append(x) return (chars) x = chars("TNT") print(x)
[‘T’, ‘N’, ‘T’]
Lezione precedente <– []–> Lezione successiva