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
