Inizierò questo capitolo mostrandovi cosa potreste ma non
dovreste fare (quindi non scrivete):
L'output sarebbe:
a = 23
b = -23
if a < 0:
a = -a
if b < 0:
b = -b
if a == b:
print "The absolute values of", a,"and",b,"are equal"
else:
print "The absolute values of a and b are different"
Il programma sembra un po' ripetitivo (e i programmatori odiano ripetere le
cose, i computer servono a quello no ??). Fortunatamente Python permette di
creare funzioni per rimuovere i duplicati. Ecco l'esempio riscritto:
The absolute values of 23 and 23 are equal
l'output è:
a = 23
b = -23
def my_abs(num):
if num < 0:
num = -num
return num
if my_abs(a) == my_abs(b):
print "The absolute values of", a,"and",b,"are equal"
else:
print "The absolute values of a and b are different"
L'elemento chiave di questo programma è l'istruzione
def. def (abbreviazione di
define, definisci) inizializza la definizione di una funzione.
def è seguita
dal nome della funzione abs. Poi troviamo una
"(" seguita dal parametro num (che
viene passato dal programma ad ogni chiamata di funzione). Le istruzioni
dopo il ":" vengono eseguite ogni volta che la funzione viene usata dal
programma e si possono distinguere dalle normali righe di codice perché
sono indentate sotto la funzione. Essa, infatti, finisce quando la
tabulazione torna al suo livello o quando incontra return.
L'istruzione return ritorna un valore dove è stata
chiamata la funzione.The absolute values of 23 and -23 are equal
Osservate che i valori a e b non sono cambiati. Le funzioni ovviamente possono essere usate anche per ripetere azioni che non ritornano alcun valore.
Ecco qualche esempio:
L'output è:
def hello():
print "Hello"
def area(width,height):
return width*height
def print_welcome(name):
print "Welcome",name
hello()
hello()
print_welcome("Fred")
w = 4
h = 5
print "width =",w,"height =",h,"area =",area(w,h)
Hello
Hello
Welcome Fred
width = 4 height = 5 area = 20
Questo esempio mostra solamente un po' più in profondità in quanti differenti modi si possono applicare le funzioni. Osservate attentamente, potete anche non dare argomenti ad una funzione così come potete dargliene più d'uno. Osservate anche che return è opzionale.
Le funzioni possono essere usate per eliminare le ripetizioni di codice.